From 9325a4d4bb1e253302294d1bfa8564f38ae3c85f Mon Sep 17 00:00:00 2001 From: Ammar Ahmed <40239442+ammarahm-ed@users.noreply.github.com> Date: Fri, 19 Jun 2026 13:55:34 +0500 Subject: [PATCH] mobile: update mobile app settings ui (#9994) * mobile: update onboarding screen ui * mobile: update ui for paywall flow * mobile: update ui * mobile: update ui * mobile: fix text capitalization * mobile: fix Login screen text capitalization and eye icon mismatch with design * mobile: fix two-factor ui * mobile: ui fixes * mobile: update basic settings ui and reorganize settings screen * mobile: update change-password & recovery-key sheets * mobile: update 2fa sheets design * mobile: add force sync sheets * mobile: replace hard coded strings * mobile: update theme-selector and notesnook circle ui * mobile: update behavior settings * mobile: complete settings module * mobile: fix errors * mobile: settings ui update * mobile: add app-lock password change screens * mobile: add inbox api * mobile: finalize settings ui --- agent.md | 51 + apps/mobile/app/app.tsx | 2 +- apps/mobile/app/components/app-lock/index.tsx | 21 +- .../app/components/attachments/index.tsx | 2 +- .../app/components/auth/change-password.tsx | 66 +- .../app/components/dialog-provider/index.jsx | 4 +- .../app/components/dialog/dialog-buttons.tsx | 8 +- .../components/dialog/dialog-container.tsx | 3 +- .../app/components/dialog/dialog-header.tsx | 115 +- .../mobile/app/components/dialog/functions.ts | 4 + apps/mobile/app/components/dialog/index.tsx | 7 +- .../dialogs/applock-password/index.tsx | 458 +- .../components/dialogs/pdf-preview/index.jsx | 4 + .../app/components/dialogs/progress/index.tsx | 164 +- .../components/dialogs/progress/progress.tsx | 210 + .../app/components/dialogs/vault/index.tsx | 97 +- apps/mobile/app/components/header/index.tsx | 29 +- .../app/components/sheet-provider/index.jsx | 140 +- .../components/sheets/add-api-key/index.tsx | 148 +- .../sheets/app-lock-timeout/index.tsx | 178 + .../components/sheets/date-format/index.tsx | 185 + .../components/sheets/download-logs/index.tsx | 378 ++ .../components/sheets/export-notes/index.tsx | 426 +- .../components/sheets/export-notes/share.jsx | 3 + .../components/sheets/force-sync/index.tsx | 221 + .../app/components/sheets/github/issue.tsx | 358 +- .../sheets/lock-vault-timer/index.tsx | 188 + .../app/components/sheets/paywall/index.tsx | 330 +- .../components/sheets/plan-limits/index.tsx | 127 +- .../components/sheets/publish-note/index.tsx | 6 +- .../components/sheets/recovery-key/index.jsx | 338 -- .../components/sheets/recovery-key/index.tsx | 454 ++ .../app/components/sheets/sort/index.tsx | 29 +- .../sheets/trash-interval/index.tsx | 189 + .../app/components/sheets/update/index.js | 232 - .../app/components/sheets/update/index.tsx | 306 ++ .../app/components/sheets/user/index.tsx | 424 +- .../mobile/app/components/side-menu/index.tsx | 5 + apps/mobile/app/components/toast/index.tsx | 21 +- .../mobile/app/components/ui/button/index.tsx | 8 +- .../ui/circles-background/index.tsx | 111 + .../app/components/ui/input/form-input.tsx | 2 +- apps/mobile/app/components/ui/input/index.tsx | 13 +- .../mobile/app/components/ui/notice/index.tsx | 39 +- .../app/components/ui/pressable/index.tsx | 32 +- apps/mobile/app/components/ui/sheet/index.jsx | 5 +- apps/mobile/app/components/ui/svg/index.tsx | 1 + apps/mobile/app/hooks/use-app-events.tsx | 2 +- apps/mobile/app/hooks/use-feature-manager.ts | 2 +- apps/mobile/app/hooks/use-vault-status.ts | 3 + apps/mobile/app/screens/editor/source.ts | 2 +- .../editor/tiptap/use-editor-events.tsx | 2 +- apps/mobile/app/screens/settings/2fa.tsx | 825 ---- .../app/screens/settings/components/2fa.tsx | 1024 ++++ .../settings/components/account-card.tsx | 118 + .../attachment-group-progress.tsx | 18 +- .../index.tsx => components/change-email.tsx} | 0 .../settings/{ => components}/components.tsx | 26 +- .../settings/{ => components}/debug.tsx | 262 +- .../{ => components}/editor/common.tsx | 0 .../editor/configure-toolbar.tsx | 14 +- .../{ => components}/editor/group.tsx | 14 +- .../settings/{ => components}/editor/state.ts | 6 +- .../{ => components}/editor/tool-sheet.tsx | 14 +- .../settings/{ => components}/editor/tool.tsx | 16 +- .../editor/toolbar-definition.ts | 4 +- .../settings/{ => components}/license-data.js | 0 .../settings/{ => components}/licenses.tsx | 10 +- .../settings/components/notesnook-circle.tsx | 300 ++ .../settings/components/picker/index.tsx | 217 + .../{ => components}/picker/pickers.tsx | 133 +- .../settings/components/server-config.tsx | 247 + .../{ => components}/sound-picker.tsx | 16 +- .../settings/components/theme-selector.tsx | 1124 +++++ .../settings/components/title-format.tsx | 98 + .../settings/components/user-section.jsx | 316 ++ .../screens/settings/failed-inbox-items.tsx | 314 +- apps/mobile/app/screens/settings/functions.js | 159 - apps/mobile/app/screens/settings/group.tsx | 41 +- .../app/screens/settings/groups/about.tsx | 88 + .../screens/settings/groups/account-local.ts | 74 + .../app/screens/settings/groups/account.ts | 842 ++++ .../screens/settings/groups/back-restore.ts | 313 ++ .../app/screens/settings/groups/community.ts | 76 + .../app/screens/settings/groups/customize.ts | 345 ++ .../screens/settings/groups/help-support.tsx | 84 + .../app/screens/settings/groups/index.ts | 48 + .../app/screens/settings/groups/legal.ts | 66 + .../settings/groups/privacy-security.ts | 374 ++ .../screens/settings/groups/productivity.ts | 131 + apps/mobile/app/screens/settings/home.tsx | 32 +- apps/mobile/app/screens/settings/index.tsx | 2 +- .../screens/settings/manage-inbox-keys.tsx | 1023 +++- .../app/screens/settings/notesnook-circle.tsx | 232 - .../app/screens/settings/picker/index.tsx | 176 - .../screens/settings/restore-backup/index.tsx | 253 +- .../app/screens/settings/section-group.tsx | 59 +- .../app/screens/settings/section-item.tsx | 473 +- .../app/screens/settings/server-config.tsx | 238 - .../app/screens/settings/settings-data.tsx | 1837 +------ .../app/screens/settings/theme-selector.tsx | 892 ---- .../app/screens/settings/title-format.tsx | 62 - apps/mobile/app/screens/settings/types.ts | 4 +- .../app/screens/settings/user-section.jsx | 426 -- .../app/screens/settings/verify-user.ts | 165 + apps/mobile/app/screens/wrapped/index.tsx | 2 + apps/mobile/app/services/backup.ts | 22 +- apps/mobile/app/services/event-manager.ts | 1 + apps/mobile/app/services/message.tsx | 9 +- apps/mobile/app/utils/constants.ts | 18 + .../fonts/notesnook-icons.glyphmap.json | 2 +- apps/mobile/fonts/notesnook-icons.ttf | Bin 11880 -> 30640 bytes .../ios/nanoicons-fonts/notesnook-icons.ttf | Bin 11880 -> 30640 bytes apps/mobile/react-native.config.js | 2 +- package-lock.json | 1056 +---- packages/icons/svgs/arrow-clockwise.svg | 3 + .../icons/svgs/arrow-counter-clockwise.svg | 3 + packages/icons/svgs/arrow-fat-up.svg | 5 + packages/icons/svgs/arrow-right.svg | 3 + packages/icons/svgs/arrow-square-out.svg | 3 + packages/icons/svgs/arrow-u-up-left.svg | 5 + packages/icons/svgs/arrows-clockwise.svg | 5 + packages/icons/svgs/backspace.svg | 3 + packages/icons/svgs/bag-simple.svg | 5 + packages/icons/svgs/bell-z.svg | 3 + packages/icons/svgs/bug-droid.svg | 5 + packages/icons/svgs/calendar-check.svg | 5 + packages/icons/svgs/calendar-day.svg | 3 + packages/icons/svgs/calendar-dots.svg | 5 + packages/icons/svgs/chart-donut.svg | 3 + packages/icons/svgs/chart-line-up.svg | 5 + packages/icons/svgs/check-small.svg | 3 + packages/icons/svgs/check.svg | 3 + packages/icons/svgs/chevron-right.svg | 3 + .../icons/svgs/clock-counter-clockwise.svg | 5 + packages/icons/svgs/clock.svg | 3 + packages/icons/svgs/cloud-check.svg | 5 + packages/icons/svgs/copy.svg | 11 + packages/icons/svgs/crown-simple.svg | 3 + packages/icons/svgs/device-mobile-camera.svg | 5 + packages/icons/svgs/discord-logo.svg | 5 + packages/icons/svgs/download-simple.svg | 5 + packages/icons/svgs/ellipse.svg | 3 + packages/icons/svgs/export.svg | 5 + packages/icons/svgs/eye-filled.svg | 10 + packages/icons/svgs/eye-slash.svg | 5 + packages/icons/svgs/file-cloud.svg | 3 + packages/icons/svgs/file-dashed.svg | 5 + packages/icons/svgs/file-html.svg | 3 + packages/icons/svgs/file-pdf.svg | 3 + packages/icons/svgs/file-text.svg | 5 + packages/icons/svgs/fingerprint-simple.svg | 3 + packages/icons/svgs/folder.svg | 3 + packages/icons/svgs/gift.svg | 3 + packages/icons/svgs/git-pull-request.svg | 5 + packages/icons/svgs/github-logo.svg | 10 + packages/icons/svgs/hard-drives.svg | 5 + packages/icons/svgs/key.svg | 5 + packages/icons/svgs/list.svg | 10 + packages/icons/svgs/markdown.svg | 3 + packages/icons/svgs/mastodon-logo.svg | 5 + packages/icons/svgs/minus.svg | 3 + packages/icons/svgs/moon.svg | 5 + packages/icons/svgs/network.svg | 5 + packages/icons/svgs/notification.svg | 5 + packages/icons/svgs/numpad.svg | 3 + packages/icons/svgs/nut.svg | 3 + packages/icons/svgs/paint-brush-household.svg | 3 + packages/icons/svgs/paint-roller.svg | 5 + packages/icons/svgs/palette.svg | 3 + packages/icons/svgs/paperclip.svg | 5 + packages/icons/svgs/pause.svg | 5 + packages/icons/svgs/pencil-ruler.svg | 3 + packages/icons/svgs/pencil-simple-line.svg | 5 + packages/icons/svgs/pencil-simple.svg | 3 + packages/icons/svgs/plus.svg | 2 +- packages/icons/svgs/radio-button.svg | 3 + .../svgs/recovery-key-cloud-arrow-down.svg | 5 + packages/icons/svgs/recovery-key-copy.svg | 11 + packages/icons/svgs/recovery-key-file.svg | 5 + packages/icons/svgs/recovery-key-key.svg | 5 + packages/icons/svgs/recovery-key-qr-code.svg | 5 + .../icons/svgs/recovery-key-shield-check.svg | 5 + packages/icons/svgs/shield-check.svg | 4 +- packages/icons/svgs/shield-plus.svg | 3 + packages/icons/svgs/shield.svg | 5 + packages/icons/svgs/sliders-horizontal.svg | 5 + packages/icons/svgs/speaker-high.svg | 3 + packages/icons/svgs/squares-four.svg | 5 + packages/icons/svgs/swatches.svg | 5 + packages/icons/svgs/table.svg | 3 + packages/icons/svgs/telegram-logo.svg | 5 + packages/icons/svgs/text-aa.svg | 3 + packages/icons/svgs/toggle-off.svg | 3 + packages/icons/svgs/toggle-on.svg | 3 + packages/icons/svgs/tray-arrow-down.svg | 3 + packages/icons/svgs/user-circle-minus.svg | 5 + packages/icons/svgs/user-sheet-docs.svg | 5 + packages/icons/svgs/user-sheet-logout.svg | 5 + packages/icons/svgs/user-sheet-settings.svg | 5 + packages/icons/svgs/user-sheet-support.svg | 5 + packages/icons/svgs/user-sheet-sync.svg | 5 + packages/icons/svgs/user.svg | 5 + packages/icons/svgs/users-three.svg | 5 + packages/icons/svgs/warning.svg | 3 + packages/icons/svgs/wifi-slash.svg | 5 + packages/icons/svgs/x-logo.svg | 5 + packages/intl/locale/en.po | 4170 ++++++++-------- packages/intl/locale/pseudo-LOCALE.po | 4208 +++++++++-------- packages/intl/src/strings.ts | 147 +- 210 files changed, 17024 insertions(+), 12806 deletions(-) create mode 100644 agent.md create mode 100644 apps/mobile/app/components/dialogs/progress/progress.tsx create mode 100644 apps/mobile/app/components/sheets/app-lock-timeout/index.tsx create mode 100644 apps/mobile/app/components/sheets/date-format/index.tsx create mode 100644 apps/mobile/app/components/sheets/download-logs/index.tsx create mode 100644 apps/mobile/app/components/sheets/force-sync/index.tsx create mode 100644 apps/mobile/app/components/sheets/lock-vault-timer/index.tsx delete mode 100644 apps/mobile/app/components/sheets/recovery-key/index.jsx create mode 100644 apps/mobile/app/components/sheets/recovery-key/index.tsx create mode 100644 apps/mobile/app/components/sheets/trash-interval/index.tsx delete mode 100644 apps/mobile/app/components/sheets/update/index.js create mode 100644 apps/mobile/app/components/sheets/update/index.tsx create mode 100644 apps/mobile/app/components/ui/circles-background/index.tsx delete mode 100644 apps/mobile/app/screens/settings/2fa.tsx create mode 100644 apps/mobile/app/screens/settings/components/2fa.tsx create mode 100644 apps/mobile/app/screens/settings/components/account-card.tsx rename apps/mobile/app/screens/settings/{ => components}/attachment-group-progress.tsx (86%) rename apps/mobile/app/screens/settings/{change-email/index.tsx => components/change-email.tsx} (100%) rename apps/mobile/app/screens/settings/{ => components}/components.tsx (80%) rename apps/mobile/app/screens/settings/{ => components}/debug.tsx (52%) rename apps/mobile/app/screens/settings/{ => components}/editor/common.tsx (100%) rename apps/mobile/app/screens/settings/{ => components}/editor/configure-toolbar.tsx (92%) rename apps/mobile/app/screens/settings/{ => components}/editor/group.tsx (95%) rename apps/mobile/app/screens/settings/{ => components}/editor/state.ts (96%) rename apps/mobile/app/screens/settings/{ => components}/editor/tool-sheet.tsx (89%) rename apps/mobile/app/screens/settings/{ => components}/editor/tool.tsx (96%) rename apps/mobile/app/screens/settings/{ => components}/editor/toolbar-definition.ts (95%) rename apps/mobile/app/screens/settings/{ => components}/license-data.js (100%) rename apps/mobile/app/screens/settings/{ => components}/licenses.tsx (87%) create mode 100644 apps/mobile/app/screens/settings/components/notesnook-circle.tsx create mode 100644 apps/mobile/app/screens/settings/components/picker/index.tsx rename apps/mobile/app/screens/settings/{ => components}/picker/pickers.tsx (67%) create mode 100644 apps/mobile/app/screens/settings/components/server-config.tsx rename apps/mobile/app/screens/settings/{ => components}/sound-picker.tsx (89%) create mode 100644 apps/mobile/app/screens/settings/components/theme-selector.tsx create mode 100644 apps/mobile/app/screens/settings/components/title-format.tsx create mode 100644 apps/mobile/app/screens/settings/components/user-section.jsx delete mode 100644 apps/mobile/app/screens/settings/functions.js create mode 100644 apps/mobile/app/screens/settings/groups/about.tsx create mode 100644 apps/mobile/app/screens/settings/groups/account-local.ts create mode 100644 apps/mobile/app/screens/settings/groups/account.ts create mode 100644 apps/mobile/app/screens/settings/groups/back-restore.ts create mode 100644 apps/mobile/app/screens/settings/groups/community.ts create mode 100644 apps/mobile/app/screens/settings/groups/customize.ts create mode 100644 apps/mobile/app/screens/settings/groups/help-support.tsx create mode 100644 apps/mobile/app/screens/settings/groups/index.ts create mode 100644 apps/mobile/app/screens/settings/groups/legal.ts create mode 100644 apps/mobile/app/screens/settings/groups/privacy-security.ts create mode 100644 apps/mobile/app/screens/settings/groups/productivity.ts delete mode 100644 apps/mobile/app/screens/settings/notesnook-circle.tsx delete mode 100644 apps/mobile/app/screens/settings/picker/index.tsx delete mode 100644 apps/mobile/app/screens/settings/server-config.tsx delete mode 100644 apps/mobile/app/screens/settings/theme-selector.tsx delete mode 100644 apps/mobile/app/screens/settings/title-format.tsx delete mode 100644 apps/mobile/app/screens/settings/user-section.jsx create mode 100644 apps/mobile/app/screens/settings/verify-user.ts create mode 100644 packages/icons/svgs/arrow-clockwise.svg create mode 100644 packages/icons/svgs/arrow-counter-clockwise.svg create mode 100644 packages/icons/svgs/arrow-fat-up.svg create mode 100644 packages/icons/svgs/arrow-right.svg create mode 100644 packages/icons/svgs/arrow-square-out.svg create mode 100644 packages/icons/svgs/arrow-u-up-left.svg create mode 100644 packages/icons/svgs/arrows-clockwise.svg create mode 100644 packages/icons/svgs/backspace.svg create mode 100644 packages/icons/svgs/bag-simple.svg create mode 100644 packages/icons/svgs/bell-z.svg create mode 100644 packages/icons/svgs/bug-droid.svg create mode 100644 packages/icons/svgs/calendar-check.svg create mode 100644 packages/icons/svgs/calendar-day.svg create mode 100644 packages/icons/svgs/calendar-dots.svg create mode 100644 packages/icons/svgs/chart-donut.svg create mode 100644 packages/icons/svgs/chart-line-up.svg create mode 100644 packages/icons/svgs/check-small.svg create mode 100644 packages/icons/svgs/check.svg create mode 100644 packages/icons/svgs/chevron-right.svg create mode 100644 packages/icons/svgs/clock-counter-clockwise.svg create mode 100644 packages/icons/svgs/clock.svg create mode 100644 packages/icons/svgs/cloud-check.svg create mode 100644 packages/icons/svgs/copy.svg create mode 100644 packages/icons/svgs/crown-simple.svg create mode 100644 packages/icons/svgs/device-mobile-camera.svg create mode 100644 packages/icons/svgs/discord-logo.svg create mode 100644 packages/icons/svgs/download-simple.svg create mode 100644 packages/icons/svgs/ellipse.svg create mode 100644 packages/icons/svgs/export.svg create mode 100755 packages/icons/svgs/eye-filled.svg create mode 100644 packages/icons/svgs/eye-slash.svg create mode 100644 packages/icons/svgs/file-cloud.svg create mode 100644 packages/icons/svgs/file-dashed.svg create mode 100644 packages/icons/svgs/file-html.svg create mode 100644 packages/icons/svgs/file-pdf.svg create mode 100644 packages/icons/svgs/file-text.svg create mode 100644 packages/icons/svgs/fingerprint-simple.svg create mode 100644 packages/icons/svgs/folder.svg create mode 100644 packages/icons/svgs/gift.svg create mode 100644 packages/icons/svgs/git-pull-request.svg create mode 100644 packages/icons/svgs/github-logo.svg create mode 100644 packages/icons/svgs/hard-drives.svg create mode 100644 packages/icons/svgs/key.svg create mode 100644 packages/icons/svgs/list.svg create mode 100644 packages/icons/svgs/markdown.svg create mode 100644 packages/icons/svgs/mastodon-logo.svg create mode 100644 packages/icons/svgs/minus.svg create mode 100644 packages/icons/svgs/moon.svg create mode 100644 packages/icons/svgs/network.svg create mode 100644 packages/icons/svgs/notification.svg create mode 100644 packages/icons/svgs/numpad.svg create mode 100644 packages/icons/svgs/nut.svg create mode 100644 packages/icons/svgs/paint-brush-household.svg create mode 100644 packages/icons/svgs/paint-roller.svg create mode 100644 packages/icons/svgs/palette.svg create mode 100644 packages/icons/svgs/paperclip.svg create mode 100644 packages/icons/svgs/pause.svg create mode 100644 packages/icons/svgs/pencil-ruler.svg create mode 100644 packages/icons/svgs/pencil-simple-line.svg create mode 100644 packages/icons/svgs/pencil-simple.svg create mode 100644 packages/icons/svgs/radio-button.svg create mode 100644 packages/icons/svgs/recovery-key-cloud-arrow-down.svg create mode 100644 packages/icons/svgs/recovery-key-copy.svg create mode 100644 packages/icons/svgs/recovery-key-file.svg create mode 100644 packages/icons/svgs/recovery-key-key.svg create mode 100644 packages/icons/svgs/recovery-key-qr-code.svg create mode 100644 packages/icons/svgs/recovery-key-shield-check.svg create mode 100644 packages/icons/svgs/shield-plus.svg create mode 100644 packages/icons/svgs/shield.svg create mode 100644 packages/icons/svgs/sliders-horizontal.svg create mode 100644 packages/icons/svgs/speaker-high.svg create mode 100644 packages/icons/svgs/squares-four.svg create mode 100644 packages/icons/svgs/swatches.svg create mode 100644 packages/icons/svgs/table.svg create mode 100644 packages/icons/svgs/telegram-logo.svg create mode 100644 packages/icons/svgs/text-aa.svg create mode 100644 packages/icons/svgs/toggle-off.svg create mode 100644 packages/icons/svgs/toggle-on.svg create mode 100644 packages/icons/svgs/tray-arrow-down.svg create mode 100644 packages/icons/svgs/user-circle-minus.svg create mode 100644 packages/icons/svgs/user-sheet-docs.svg create mode 100644 packages/icons/svgs/user-sheet-logout.svg create mode 100644 packages/icons/svgs/user-sheet-settings.svg create mode 100644 packages/icons/svgs/user-sheet-support.svg create mode 100644 packages/icons/svgs/user-sheet-sync.svg create mode 100644 packages/icons/svgs/user.svg create mode 100644 packages/icons/svgs/users-three.svg create mode 100755 packages/icons/svgs/warning.svg create mode 100644 packages/icons/svgs/wifi-slash.svg create mode 100644 packages/icons/svgs/x-logo.svg diff --git a/agent.md b/agent.md new file mode 100644 index 000000000..1c0b29b8d --- /dev/null +++ b/agent.md @@ -0,0 +1,51 @@ +## Notesnook Design Agent + +### Purpose + +- Implement Figma designs from user-provided links into the Notesnook app with high visual fidelity. +- Use related components and files provided by the user as the source of truth for local patterns. +- Preserve behavior, navigation, and existing data flow while updating UI. + +### When To Use This Agent + +- Use this agent when the task is design-to-code for app UI. +- Prefer this agent over a general coding agent when the user provides a Figma link and asks for redesign implementation. + +### Scope + +- Primary focus: apps/mobile. +- Secondary scope: shared UI dependencies needed for the design update (tokens, icons, strings, and generated assets). +- Do not perform unrelated refactors. + +### Tool Preferences + +- Prefer Figma design-context tools to extract layout, spacing rhythm, typography intent, and asset references from the exact node. +- Prefer direct workspace edits and targeted validation for touched files. +- Avoid introducing new UI frameworks or web-specific styling approaches. + +### Repo Conventions + +- Use theme and token systems first: useThemeColors, spacing/radius constants, and shared typography primitives. +- Reuse existing UI primitives and patterns before creating new abstractions. +- Keep dark and light mode compatibility by default. +- Keep changes minimal, isolated, and review-friendly. + +### Icon Conventions + +- Add new icon SVGs to packages/icons/svgs with lowercase kebab-case names. +- Regenerate icon assets from apps/mobile using npx react-native-nano-icons. +- Use generated icon names through AppIcon with icon family notesnook where applicable. + +### Figma To Code Workflow + +1. Read the exact Figma node from the provided link. +2. Compare against existing repo patterns and referenced components. +3. Implement with React Native conventions already used in the app. +4. Preserve behavior and interactions unless explicitly changed. +5. Validate compile and lint state for edited files. + +### Output Expectations + +- Provide a concise summary of what changed. +- List modified files and any generated artifacts. +- Call out follow-up steps only when needed. diff --git a/apps/mobile/app/app.tsx b/apps/mobile/app/app.tsx index 44fd2eb0d..6cea1958a 100644 --- a/apps/mobile/app/app.tsx +++ b/apps/mobile/app/app.tsx @@ -35,7 +35,7 @@ import { Toast } from "./components/toast"; import { useAppEvents } from "./hooks/use-app-events"; import { NotePreviewConfigure } from "./screens/note-preview-configure"; import { RootNavigation } from "./navigation/navigation-stack"; -import { themeTrpcClient } from "./screens/settings/theme-selector"; +import { themeTrpcClient } from "./screens/settings/components/theme-selector"; import Notifications from "./services/notifications"; import SettingsService from "./services/settings"; import { TipManager } from "./services/tip-manager"; diff --git a/apps/mobile/app/components/app-lock/index.tsx b/apps/mobile/app/components/app-lock/index.tsx index bcab38b15..183c8340f 100644 --- a/apps/mobile/app/components/app-lock/index.tsx +++ b/apps/mobile/app/components/app-lock/index.tsx @@ -55,6 +55,7 @@ import { KeyboardAwareScrollView } from "react-native-keyboard-aware-scroll-view import { strings } from "@notesnook/intl"; import { editorController } from "../../screens/editor/tiptap/utils"; import { useTabStore } from "../../screens/editor/tiptap/use-tab-store"; +import { PASSWORD_PLACEHOLDER } from "../../utils/constants"; const getUser = () => { const user = MMKV.getString("user"); @@ -96,9 +97,6 @@ const AppLocked = () => { const lastAppState = useRef(appState); const biometricUnlockAwaitingUserInput = useRef(false); const { height } = useWindowDimensions(); - const keyboardType = useSettingStore( - (state) => state.settings.applockKeyboardType - ); const appLockHasPasswordSecurity = useSettingStore( (state) => state.settings.appLockHasPasswordSecurity ); @@ -157,8 +155,7 @@ const AppLocked = () => { if (!appLockHasPasswordSecurity) { await setAppLockVerificationCipher(password.current); SettingsService.set({ - appLockHasPasswordSecurity: true, - applockKeyboardType: "default" + appLockHasPasswordSecurity: true }); DatabaseLogger.info("App lock migrated to password security"); } @@ -167,7 +164,7 @@ const AppLocked = () => { password.current = undefined; } else { ToastManager.show({ - heading: strings.invalid(keyboardType), + heading: strings.invalid("password"), type: "error", context: "local" }); @@ -290,9 +287,7 @@ const AppLocked = () => { { if ( !biometricsAuthEnabled || @@ -303,13 +298,7 @@ const AppLocked = () => { }, 32); } }} - placeholder={ - appLockHasPasswordSecurity - ? keyboardType === "numeric" - ? strings.enterApplockPassword() - : strings.enterApplockPin() - : strings.enterAccountPassword() - } + placeholder={PASSWORD_PLACEHOLDER} onChangeText={(v) => (password.current = v)} onSubmit={() => { onSubmit(); diff --git a/apps/mobile/app/components/attachments/index.tsx b/apps/mobile/app/components/attachments/index.tsx index b5b7b6943..cd4da9d02 100644 --- a/apps/mobile/app/components/attachments/index.tsx +++ b/apps/mobile/app/components/attachments/index.tsx @@ -34,7 +34,7 @@ import create from "zustand"; import { db } from "../../common/database"; import filesystem from "../../common/filesystem"; import { downloadAttachments } from "../../common/filesystem/download-attachment"; -import { AttachmentGroupProgress } from "../../screens/settings/attachment-group-progress"; +import { AttachmentGroupProgress } from "../../screens/settings/components/attachment-group-progress"; import { presentSheet, ToastManager } from "../../services/event-manager"; import { useAttachmentStore } from "../../stores/use-attachment-store"; import { AppFontSize } from "../../utils/size"; diff --git a/apps/mobile/app/components/auth/change-password.tsx b/apps/mobile/app/components/auth/change-password.tsx index d10ae1341..739cc155f 100644 --- a/apps/mobile/app/components/auth/change-password.tsx +++ b/apps/mobile/app/components/auth/change-password.tsx @@ -23,10 +23,9 @@ import React, { useRef, useState } from "react"; import { View } from "react-native"; import { db } from "../../common/database"; import BackupService from "../../services/backup"; -import { eSendEvent, ToastManager } from "../../services/event-manager"; +import { ToastManager } from "../../services/event-manager"; import Navigation from "../../services/navigation"; import { useUserStore } from "../../stores/use-user-store"; -import { eOpenRecoveryKeyDialog } from "../../utils/events"; import { AppFontSize } from "../../utils/size"; import { DefaultAppStyles } from "../../utils/styles"; import { Dialog } from "../dialog"; @@ -36,6 +35,8 @@ import FormInput, { createFormRef, validators } from "../ui/input/form-input"; import { Notice } from "../ui/notice"; import Paragraph from "../ui/typography/paragraph"; import { TextInput } from "react-native-gesture-handler"; +import { Spacing } from "../../common/design/spacing"; +import RecoveryKeySheet from "../sheets/recovery-key"; export const ChangePassword = () => { const { colors } = useThemeColors(); @@ -92,7 +93,7 @@ export const ChangePassword = () => { }); setLoading(false); Navigation.goBack(); - eSendEvent(eOpenRecoveryKeyDialog); + RecoveryKeySheet.present(); } catch (e) { const message = (e as Error).message; setLoading(false); @@ -109,12 +110,15 @@ export const ChangePassword = () => { { autoComplete="password" autoCapitalize="none" autoCorrect={false} - placeholder={strings.currentPassword()} + placeholder={"•••••••••"} onSubmitEditing={() => { passwordInputRef.current?.focus(); }} @@ -133,6 +137,7 @@ export const ChangePassword = () => { { autoComplete="password" autoCapitalize="none" autoCorrect={false} - placeholder={strings.newPassword()} + placeholder={"•••••••••"} + onSubmitEditing={() => { + changePassword(); + }} + /> + + { changePassword(); }} @@ -168,15 +194,14 @@ export const ChangePassword = () => { ) : null} - - - - - +