• Johnny's avatar
    refactor(MemoView): improve maintainability and code organization · e61d594d
    Johnny authored
    Complete refactoring of MemoView components for better code quality:
    
    - Split useMemoViewState into individual hook files (useMemoActions,
      useKeyboardShortcuts, useNsfwContent, useImagePreview, useMemoCreator)
      for single responsibility principle
    - Consolidate types closer to usage - move hook-specific types to
      respective files, keep only component props in shared types.ts
    - Optimize context with separate static/dynamic memoization to reduce
      unnecessary re-renders
    - Simplify barrel exports to only expose public API (MemoView component
      and MemoViewProps type)
    - Add comprehensive JSDoc documentation to all public APIs with usage
      examples
    
    Benefits:
    - Better maintainability: each hook file has one clear purpose
    - Improved performance: context optimization prevents unnecessary re-renders
    - Enhanced developer experience: clear documentation and encapsulation
    - Cleaner architecture: public API is minimal, internal details hidden
    
    All automated checks pass (TypeScript compilation, linter, production build).
    e61d594d
Name
Last commit
Last update
..
ActivityCalendar Loading commit data...
ConfirmDialog Loading commit data...
Inbox Loading commit data...
MasonryView Loading commit data...
MemoActionMenu Loading commit data...
MemoContent Loading commit data...
MemoDetailSidebar Loading commit data...
MemoEditor Loading commit data...
MemoExplorer Loading commit data...
MemoReactionListView Loading commit data...
MemoRelationForceGraph Loading commit data...
MemoView Loading commit data...
PagedMemoList Loading commit data...
Settings Loading commit data...
StatisticsView Loading commit data...
kit Loading commit data...
memo-metadata Loading commit data...
ui Loading commit data...
AttachmentIcon.tsx Loading commit data...
AuthFooter.tsx Loading commit data...
ChangeMemberPasswordDialog.tsx Loading commit data...
CreateAccessTokenDialog.tsx Loading commit data...
CreateIdentityProviderDialog.tsx Loading commit data...
CreateShortcutDialog.tsx Loading commit data...
CreateUserDialog.tsx Loading commit data...
CreateWebhookDialog.tsx Loading commit data...
DateTimeInput.tsx Loading commit data...
Empty.tsx Loading commit data...
LeafletMap.tsx Loading commit data...
LearnMore.tsx Loading commit data...
LocaleSelect.tsx Loading commit data...
MemoAttachment.tsx Loading commit data...
MemoDisplaySettingMenu.tsx Loading commit data...
MemoFilters.tsx Loading commit data...
MemoResource.tsx Loading commit data...
MemoSkeleton.tsx Loading commit data...
MemosLogo.tsx Loading commit data...
MobileHeader.tsx Loading commit data...
Navigation.tsx Loading commit data...
NavigationDrawer.tsx Loading commit data...
PasswordSignInForm.tsx Loading commit data...
PreviewImageDialog.tsx Loading commit data...
RequiredBadge.tsx Loading commit data...
SearchBar.tsx Loading commit data...
TagTree.tsx Loading commit data...
ThemeSelect.tsx Loading commit data...
UpdateAccountDialog.tsx Loading commit data...
UpdateCustomizedProfileDialog.tsx Loading commit data...
UserAvatar.tsx Loading commit data...
UserMenu.tsx Loading commit data...
VisibilityIcon.tsx Loading commit data...