mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-22 02:06:42 +02:00
feat: major update with network graphs, themes, todo extensions, and more
## New Features ### Network Graph Visualization (Contacts, Calendar, Todo) - D3.js force simulation for physics-based layout - Zoom & pan with mouse/touchpad - Keyboard shortcuts: +/- zoom, 0 reset, Esc deselect, / search, F focus - Filtering by tags, company/location/project, connection strength - Shared components in @manacore/shared-ui ### Central Tags API (mana-core-auth) - CRUD endpoints for tags - Schema: tags table with userId, name, color, app - Shared tag components in @manacore/shared-ui ### Custom Themes System - Theme editor with live preview and color picker - Community theme gallery - Theme sharing (public, unlisted, private) - Backend API in mana-core-auth ### Todo App Extensions - Glass-pill design for task input and items - Settings page with 20+ preferences - Task edit modal with inline editing - Statistics page with visualizations - PWA support with offline capabilities - Multiple kanban boards ### Contacts App Features - Duplicate detection - Photo upload - Batch operations - Enhanced favorites page with multiple view modes - Alphabet view improvements - Search modal ### Help System - @manacore/shared-help-content - @manacore/shared-help-ui - @manacore/shared-help-types ### Other Features - Themes page for all apps - Referral system frontend - CommandBar (global search) - Skeleton loaders - Settings page improvements ## Bug Fixes - Network graph simulation initialization - Database schema TEXT for user_id columns (Better Auth compatibility) - Various styling fixes ## Documentation - Daily report for 2025-12-10 - CI/CD deployment guide 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
e84371aa94
commit
ee42b6cc76
381 changed files with 39284 additions and 6275 deletions
51
packages/shared-help-mobile/src/hooks/useHelpContent.ts
Normal file
51
packages/shared-help-mobile/src/hooks/useHelpContent.ts
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
/**
|
||||
* Hook for loading and managing help content in mobile apps
|
||||
*/
|
||||
|
||||
import { useState, useMemo } from 'react';
|
||||
import type { HelpContent } from '@manacore/shared-help-types';
|
||||
import { mergeContent, createEmptyContent, createSearcher } from '@manacore/shared-help-content';
|
||||
import type { UseHelpContentOptions, UseHelpContentResult } from '../types';
|
||||
|
||||
export function useHelpContent(options: UseHelpContentOptions): UseHelpContentResult {
|
||||
const { appId, locale, centralContent, appContent } = options;
|
||||
const [loading] = useState(false);
|
||||
const [error, setError] = useState<Error | null>(null);
|
||||
|
||||
// Merge central and app-specific content
|
||||
const content = useMemo(() => {
|
||||
try {
|
||||
const base = centralContent ?? createEmptyContent();
|
||||
if (appContent) {
|
||||
return mergeContent(base, appContent, {
|
||||
appId,
|
||||
locale,
|
||||
});
|
||||
}
|
||||
return base;
|
||||
} catch (err) {
|
||||
setError(err instanceof Error ? err : new Error('Failed to merge content'));
|
||||
return createEmptyContent();
|
||||
}
|
||||
}, [centralContent, appContent, appId, locale]);
|
||||
|
||||
return {
|
||||
content,
|
||||
loading,
|
||||
error,
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Hook for searching help content
|
||||
*/
|
||||
export function useHelpSearch(content: HelpContent) {
|
||||
const searcher = useMemo(() => createSearcher(content), [content]);
|
||||
|
||||
return {
|
||||
search: (query: string, limit?: number) => {
|
||||
if (!query.trim()) return [];
|
||||
return searcher(query, { limit: limit ?? 10 });
|
||||
},
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue