Johnny
f87f728b0f
feat: react query migration ( #5379 )
2025-12-24 22:59:18 +08:00
Johnny
4109fe3245
chore(MemoEditor): enhance focus mode handling and improve editor layout
2025-12-23 20:11:38 +08:00
Johnny
8a7c976758
refactor: streamline tag sorting and update coordinate handling in MemoEditor components
2025-12-22 22:54:09 +08:00
Johnny
d537591005
feat: add slash commands tooltip to InsertMenu
2025-12-22 22:42:23 +08:00
Johnny
a6a8997f4c
chore: tweak comments
2025-11-30 13:16:02 +08:00
Johnny
7aa8262ef2
chore: streamline MemoEditor components and remove unused code
2025-11-30 12:30:00 +08:00
Steven
ef6456a4f5
refactor(web): restructure MemoEditor with custom hooks and improved error handling
...
Extract reusable logic into custom hooks (useLocalFileManager, useDragAndDrop, useDebounce, useAbortController), add ErrorBoundary for resilience, and centralize constants. Fix cursor positioning bugs, useEffect dependency issues, and add geocoding request cancellation. Improve performance with debounced localStorage writes and ref-based flags.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-25 21:29:54 +08:00
Johnny
c8162ff3cc
feat(web): add Focus Mode for distraction-free writing
...
Add keyboard-activated Focus Mode to provide an immersive writing experience:
Features:
- Toggle with Cmd/Ctrl+Shift+F (matches GitHub, Google Docs)
- Exit with Escape, toggle shortcut, button click, or backdrop click
- Expands editor to ~80-90% of viewport with centered layout
- Semi-transparent backdrop with blur effect
- Maintains all editor functionality (attachments, shortcuts, etc.)
- Smooth 300ms transitions
Responsive Design:
- Mobile (< 640px): 8px margins, 50vh min-height
- Tablet (640-768px): 16px margins
- Desktop (> 768px): 32px margins, 60vh min-height, 1024px max-width
Implementation:
- Centralized constants for easy maintenance (FOCUS_MODE_STYLES)
- Extracted keyboard shortcuts and heights to named constants
- JSDoc documentation for all new functions and interfaces
- TypeScript type safety with 'as const'
- Explicit positioning (top/left/right/bottom) to avoid width overflow
Files Modified:
- web/src/components/MemoEditor/index.tsx - Main Focus Mode logic
- web/src/components/MemoEditor/Editor/index.tsx - Height adjustments
- web/src/locales/en.json - Translation keys
Design follows industry standards (GitHub Focus Mode, Notion, Obsidian)
and maintains code quality with single source of truth pattern.
2025-11-16 23:15:36 +08:00
Steven
156908c77f
chore(web): migrate from ESLint+Prettier to Biome
...
- Install @biomejs/biome@2.3.5 as unified linter and formatter
- Remove ESLint, Prettier and all related plugins (221 packages removed)
- Migrate linting rules from ESLint to Biome configuration
- Migrate formatting rules from Prettier to Biome configuration
- Exclude auto-generated proto files from linting (src/types/proto/**)
- Exclude CSS files from Biome (Tailwind syntax not yet supported)
- Update package.json scripts:
- lint: tsc + biome check
- lint:fix: biome check --write
- format: biome format --write
- Auto-fix import organization across 60+ files
- Fix duplicate key in Russian locale (ru.json)
- Update CLAUDE.md documentation to reflect Biome usage
Benefits:
- 10-100x faster linting performance
- Simplified toolchain with single configuration file
- 221 fewer npm dependencies
- Unified linting, formatting, and import organization
2025-11-14 23:58:07 +08:00
Johnny
e8b0273473
chore(web): improve CommandSuggestions and TagSuggestions components ( #5239 )
...
Co-authored-by: Claude <noreply@anthropic.com>
2025-11-09 01:05:24 +08:00
Johnny
bd21338fdb
fix(web): markdown list auto-completion creates new line correctly ( #5238 )
...
Co-authored-by: Claude <noreply@anthropic.com>
2025-11-08 10:47:10 +08:00
Claude
739fd2cde6
refactor: update markdown parser
...
- Removed the `nodes` field from the `Memo` interface in `memo_service.ts`.
- Updated the `createBaseMemo` function and the `Memo` message functions to reflect the removal of `nodes`.
- Cleaned up the serialization and deserialization logic accordingly.
chore: remove code-inspector-plugin from Vite configuration
- Deleted the `codeInspectorPlugin` from the Vite configuration in `vite.config.mts`.
- Simplified the plugins array to include only `react` and `tailwindcss`.
2025-10-26 11:28:40 +08:00
Tobias Waslowski
15c146cfc5
feat(editor): create text-based autocompleting commands ( #4971 )
2025-08-08 18:55:59 +08:00
Steven
f78b277462
chore: simplify add memo relation
2025-07-23 23:34:30 +08:00
Johnny
db4b1f5fde
chore: tweak styles
2025-07-05 11:26:59 +08:00
Johnny
91be2f68d1
feat: variant colors ( #4816 )
2025-07-04 23:03:13 +08:00
Johnny
493832aeb4
refactor: unify components
2025-07-01 19:29:48 +08:00
Steven
330282d8b2
chore: tweak styles
2025-06-16 20:48:08 +08:00
Johnny
f5c64849d2
chore: upgrade tailwindcss to v4
2025-06-07 10:15:12 +08:00
Steven
786c6f672e
chore: remove prevent default for enter keydown
2025-06-05 23:08:55 +08:00
johnnyjoy
8d9396247b
fix: external newline
2025-06-04 21:28:58 +08:00
Johnny
ea4e7a1606
refactor: memo editor ( #4730 )
2025-05-29 07:46:40 +08:00
Jonathan Fok kan
7c05a9b997
fix(editor): prevent race condition and ensure correct list continuation on Enter ( #4716 )
...
* fix(editor): Prevent race condition and ensure correct list continuation on Enter
_
* fix: always insert newline after preventing default Enter key behavior
2025-05-27 19:57:33 +08:00
Dimitris Zervas
c2528c57f0
feat: automatically add a new table row in the editor when pressing enter ( #4706 )
...
Automatically add a new table row in the editor when pressing enter
2025-05-21 20:11:53 +08:00
Michael Baumgarten
9f01b451df
feat: match sublist indentation when adding a new item ( #4433 )
...
* match sublist indentation
* recursively get last node
* fix linting issues
2025-02-22 20:48:39 +08:00
johnnyjoy
0b85cb567e
chore(frontend): fix clsx
2025-02-01 22:04:29 +08:00
new-aspect
aa9649adf0
fix: automatic indentation follows previous lines in lists ( #4048 ) ( #4050 )
...
* fix: automatic indentation follows previous lines in lists (#4048 )
* fix: automatic indentation follows previous lines in lists (#4048 )
change the position of this logic and recommit it
2024-10-25 19:16:59 +08:00
Steven
0b6f24a21a
chore: update task complete
2024-10-10 23:22:18 +08:00
Steven
d663313ca2
chore: fix frontend linter
2024-09-17 19:09:05 +08:00
Steven
21838d0aae
chore: fix editor autocomplete
2024-05-20 08:49:55 +08:00
Jerwin Arnado
a9caecf479
fix: Set max height to 50vh for better viewing for larger screens. ( #3330 )
...
Feature: Set max height to 50vh for better viewing for larger screens.
2024-05-07 23:19:20 +08:00
Steven
155c5baf2c
refactor: add markdown service
2024-04-29 08:00:37 +08:00
Steven
d8aeec993c
chore: replace classnames with clsx
2024-04-28 00:58:40 +08:00
Steven
8bba7f706e
chore: update IME mode checks
2024-04-28 00:12:44 +08:00
Steven
6d10251cbd
feat: impl list syntax auto complete to editor
2024-04-08 20:42:53 +08:00
Steven
68468927dd
chore: tweak setting styles
2024-02-24 11:01:57 +08:00
Steven
ed32b20c9e
chore: update frontend dependencies
2024-01-27 17:28:06 +08:00
Steven
96140f3875
chore: tweak dark mode styles
2024-01-03 23:12:50 +08:00
Steven
a3feeceace
chore: remove component v1 suffix
2023-12-22 08:29:02 +08:00
Steven
81524c38e9
chore: refactor memo module
2023-12-21 23:40:43 +08:00
Steven
c02f3c0a7d
chore: remove less files in editor
2023-10-14 11:55:37 +08:00
Steven
e40621eb0f
chore: implement memo content views
2023-10-01 22:14:25 +08:00
Zeng1998
462f10ab60
feat: optimize the logic of the checkbox button. ( #2227 )
2023-09-18 20:37:28 +08:00
Steven
7ec5d07cb8
chore: remove fullscreen button
2023-09-10 10:48:08 +08:00
Maciej Kasprzyk
5d3ea57d82
feat: tag suggestions ( #2036 )
...
* feat: figure out how to read caret position
* feat: figure out how to read caret position
* feat: create and style Editor/TagSuggestions.txs
* feat: progress on detect when to show and hide
* feat: progress on when to show and hide and setting position
* feat: toggling and exact placement done
* fix: pnpm lock problems
* feat: filter suggestions by partially typed tag name
* style: prettier
* chore: add types package for textarea-caret
* feat: handle option click
* style: prettier
* style: reorder imports
Co-authored-by: boojack <stevenlgtm@gmail.com>
---------
Co-authored-by: boojack <stevenlgtm@gmail.com>
2023-07-30 22:55:45 +08:00
boojack
e3496ac1a2
refactor: memo editor components ( #1625 )
2023-05-03 19:13:37 +08:00