Commit Graph

90 Commits

Author SHA1 Message Date
Mohamad Tarbin
2918eda784 Merge pull request #211 from everysingletear/i18n/settings-remainder
i18n: extract the settings screens not covered by 8c9bf0d (Part of #145)
2026-08-13 19:40:49 -04:00
Mohamad Tarbin
da1c8f1068 Merge branch 'develop' into i18n/new-namespaces 2026-08-13 19:35:17 -04:00
everysingletear
72aa57f018 i18n: extract things, history, projects, labels, filters, timer and points
Part of #145.

Fourteen files across seven feature areas that had no namespace yet: the
things create/edit modals and their history, the chore history detail and
edit modals, the activity feed, the points view and its redemption modal,
the project view with its selector and icon picker, the label view, the
advanced filter builder and the timer edit modal.

Seven new namespaces registered in `src/i18n/config.js` in one change
rather than one per PR, so the `ns:` array is touched once and my other
extraction PRs cannot conflict with this one. Namespaces stay
feature-scoped as described in #145; if you'd rather fold any of these
into `common` or `chores`, say which and I'll rework it.

Dictionaries: `history` 57 keys, `points` 50, `timer` 25, `projects` 16,
`things` 14, `filters` 13, `labels` 5.

English only — no translations, no behaviour change. Every t() value is
checked against this branch's base: the string must appear
character-for-character in the code it replaces (226 call sites).

Three values in `UserPoints` are matched loosely and worth naming. The
base builds the leaderboard heading and subtitle around a ternary —
`{mode === 'points' ? 'Points' : 'Tasks'} Leaderboard` and `Rankings based
on {…} during the selected time period` — so neither full sentence exists
contiguously in the source. Each key holds exactly what one branch
renders. The sentences are kept whole rather than split around the
ternary, since a sentence assembled from fragments cannot be reordered by
a translator.
2026-08-13 10:21:57 +08:00
everysingletear
0e98a556da i18n: extract the settings screens your pass didn't reach (settings)
Part of #145.

`8c9bf0d` localized the settings views themselves; these eight files sit
in the same zone but were not in that pass: the subscription modal, the
child-user creation and password-change modals, both payment result
views, developer settings, and the backup/restore and account-deletion
modals.

Extends the `settings` namespace you established, following its key
naming — 59 keys added to `en/settings.json`. `src/i18n/config.js` is
untouched.

English only — no translations, no behaviour change. Every t() value is
checked against this branch's base: the string must appear
character-for-character in the code it replaces (71 call sites).

One deliberate structural detail: in `BackupRestoreModal` the warning
reads `<strong>Warning:</strong> Restoring a backup will…`. The label and
the sentence are separate keys and the `<strong>` stays in the JSX, so the
emphasis survives and no markup ends up in the dictionary.

If you'd rather keep developer settings hardcoded, say so and I'll drop
that file — it is the one screen here an end user never sees.
2026-08-13 10:18:10 +08:00
everysingletear
bdac10ac57 i18n: extract shared strings into the existing common namespace
Part of #145.

Fourteen files whose user-facing strings are generic enough to belong in
`common` — loading and empty states, the confirmation modal, the shared
input modals (text/date/user/attachment viewer), the mobile nav bar, the
autocomplete input, the error screen and the file-upload error paths.

Extends the namespace that already exists, so `src/i18n/config.js` is
untouched and this cannot collide with any other extraction PR over the
`ns:` array. 28 keys added to `public/locales/en/common.json`.

English only — no translations, no behaviour change. Every t() value is
checked against this branch's base: the string must appear
character-for-character in the code it replaces (36 call sites).

One value is matched loosely and worth naming: `errorScreen.hideDetails`.
The base renders `{showDetails ? 'Hide' : 'Show'} error details`, so
neither full phrase exists contiguously in the source — only one branch of
the ternary can. Both keys hold exactly what each branch renders. The
sentence is kept whole rather than split around the ternary, because a
split sentence cannot be reordered by a translator.
2026-08-13 10:16:14 +08:00
Mo Tarbin
83a5760959 Enhance error reporting functionality: add bug report option in settings, update error report modal, and refine feedback descriptions 2026-08-07 20:25:06 -04:00
Mohamad Tarbin
475806ac29 Error reporting (#196)
* implement error reporting modal and service integration

* Add session diagnostics for error reporting and enhance API failure tracking
2026-08-07 00:10:51 -04:00
Mohamad Tarbin
dc88fe9704 unifying the empty state across components (#184) 2026-08-02 23:16:32 -04:00
Mohamad Tarbin
46fb2d5475 Add support for in app feedback (#176) 2026-08-02 16:36:51 -04:00
Mo Tarbin
0132408eec Unify modals and buttons style and layout 2026-07-29 10:38:20 -04:00
Mo Tarbin
a6fb3c87c4 Refactor Attchemnt Upload and fix bug with signing 2026-07-18 02:16:42 -04:00
Mo Tarbin
c929977773 add filter options for created and updated dates in SortAndGrouping component 2026-07-13 00:17:27 -04:00
Mo Tarbin
d21ec9d727 make choosing color match advance filter color selector 2026-07-12 23:34:47 -04:00
Mohamad Tarbin
ae57022102 Merge pull request #127 from donetick/add-photo-ai
Add Support for OCR and attachment on tasks, redesign AddTaskModal
2026-07-07 00:25:35 -04:00
Mo Tarbin
12d95dd4b1 Fixes and remove logs 2026-07-07 00:23:36 -04:00
Mo Tarbin
24508be4d4 feat: implement attachment browser and viewer modals, enhance chore attachment handling 2026-07-06 18:11:57 -04:00
Mohamad Tarbin
16412821bf Merge branch 'develop' into advance-filtering 2026-07-04 02:06:18 -04:00
Mo Tarbin
3361ef949a Ability to open edit entry from HistoryDetailsModal 2026-07-03 15:45:15 -04:00
Mo Tarbin
97084db4de Add HistoryDetailModal component for detailed activity view 2026-07-03 14:25:12 -04:00
Mo Tarbin
8e5c31f7f3 remove the old filter logic and use advance filter in myChore 2026-06-14 15:55:19 -04:00
Mo Tarbin
fe22bb1035 feat: enhance AdvancedFilterBuilder with new filtering options and UI improvements
- Introduced new filter options for due dates, points, and chore statuses.
- Refactored condition management to use selections for better state handling.
- Improved UI components for filter conditions, including chips for selection.
- Added a bottom sheet modal for filter creation and editing.
- Enhanced user experience with clear actions and previews for selected filters.
2026-06-12 21:31:17 -04:00
Mohamad Tarbin
0da9c7f965 Merge pull request #118 from donetick/capacitor-nfc-tag-scanner
add NFC capabilities for native apps
2026-06-07 16:36:24 -04:00
Mo Tarbin
48adb0b256 feat: update app version to 1.2.3, add NFC capabilities, and enhance deep link handling 2026-06-07 16:32:43 -04:00
Mo Tarbin
07c31ebde1 feat: enhance chore management with history and sync improvements
- Added support for starting and pausing chores with offline handling.
- Implemented chore history updates and deletions with pending command management.
- Enhanced sync engine to handle chore history changes and deletions.
- Introduced a PendingBadge component to display pending actions for chore history.
- Updated DeveloperSettings to include sync diagnostics and reset functionality.
- Improved user notifications for offline actions and pending commands.
- Refactored ChoreView to dynamically generate info cards based on chore history.
- Added sync status indicator with cancel all functionality for pending commands.
2026-05-12 01:10:49 -04:00
Mohamad Tarbin
cef329376b Merge branch 'main' into feature/internationalization-support 2026-03-10 23:10:48 -04:00
Mo Tarbin
fc91894336 Refactor localization handling across components
- Updated LocalizationContext to consolidate date and time formatting functions into a single `fmt` object.
- Modified ChoreCardHelpers to accept a time format parameter for due date text.
- Adjusted ChoreView, RepeatSection, TimePassedCard, and other components to utilize the new `fmt` object for date and time formatting.
- Enhanced HistoryCard and TimerEditModal to use the new localization functions for consistent date and time display.
- Refined Settings and CircleSettings to leverage the updated localization methods for subscription and member date displays.
- Improved ThingsHistory and UserActivities to format dates and times using the new localization structure.
- Ensured CalendarCard and CalendarDual components utilize the new formatting functions for better readability.
2026-03-08 23:08:37 -04:00
Mohamad Tarbin
cf70854af5 Merge pull request #61 from wjzijderveld/password-length
Aligned password requirements and increased max-length to 64
2026-02-21 11:47:14 -05:00
Mo Tarbin
55acdfba2a streamline EditHistoryModal layout and improve button placement 2026-02-18 00:19:15 -05:00
Mo Tarbin
4b4498e84d add NoteViewerModal for displaying chore notes and descriptions
Fix https://github.com/donetick/donetick/issues/532
2026-02-18 00:18:44 -05:00
Mo Tarbin
6e3def2c13 Fix : skip rending when no entry selected
Add Support for notification when action happen
https://github.com/donetick/donetick/issues/471
2026-02-16 12:15:51 -05:00
Willem-Jan
4d58e52729 Aligned password requirements and increased max-length to 64 2026-02-15 13:18:33 +01:00
Mo Tarbin
d9d93ffad3 clean up imports and remove unused quick schedule functionality in DateModal 2026-02-10 20:38:01 -05:00
Mo Tarbin
86cfc10741 chore: update dependencies in package.json and refactor import statements in modal components 2026-02-08 01:40:33 -05:00
Mo Tarbin
492e2f2e7e refactor: update modal components to use larger size and full width with titles 2026-02-08 01:39:33 -05:00
Mo Tarbin
560cceca9b refactor: simplify menu icon logic in NavBar component 2026-02-08 01:35:45 -05:00
Mo Tarbin
d18e6412f0 feat: add quick scheduling options in DateModal with chips for today, tomorrow, weekend, and next week 2026-02-07 23:26:17 -05:00
Mo Tarbin
c9baf04505 Refactor: update condition handling for status selection in AdvancedFilterBuilder
Fix https://github.com/donetick/frontend/issues/59
2026-02-05 10:36:49 -05:00
Mo Tarbin
c20e8d1aea Refactor: optimize filter sorting with useMemo and integrate useFilters in AdvancedFilterBuilder 2026-02-04 00:22:07 -05:00
Mo Tarbin
28869498ae add points condition evaluation and update filter builder for points selection 2026-02-03 00:46:10 -05:00
Mo Tarbin
c3431b0921 Refactor: update placeholder text for filter name and replace label colors with project colors in ProjectModal 2026-02-02 19:32:25 -05:00
Mo Tarbin
96a649ca9c Scroll to the new condition when adding new field 2026-01-31 12:52:54 -05:00
Mo Tarbin
448b8fa160 feat: enhance filter functionality and UI improvements
- Added FilterView component for managing custom filters.
- Implemented temporary filter application in MyChores and custom filter hooks.
- Improved sorting of archived chores by updated date.
- Enhanced SortAndGrouping component with keyboard navigation support.
- Updated CustomFilterChips to visually indicate active filters.
- Refactored AdvancedFilterBuilder to improve usability and added listbox positioning.
- Integrated project selection caching in ProjectView for better navigation.
- Cleaned up unused imports and optimized existing code for better performance.
2026-01-27 23:50:49 -05:00
Mo Tarbin
7e35fa8710 feat: Enhance FadeModal with title and footer support; update AdvancedFilterBuilder to use fullWidth 2026-01-26 23:08:28 -05:00
Mo Tarbin
ad45bafd62 feat: Refactor Filter Section and Add Filter View
- Removed unused props and components from FilterSection.
- Introduced FilterView component to manage and display saved filters.
- Implemented swipe functionality for filter actions (edit, delete, pin).
- Enhanced AdvancedFilterBuilder with description and color selection.
- Deleted obsolete SaveFilterModal component.
- Updated NavBar to include a link to the new Filters page.
- Adjusted chore filter hooks for improved functionality and organization.
2026-01-26 17:27:27 -05:00
Mo Tarbin
2b8482cb06 feat: add custom filter chips and filter section components
- Implemented CustomFilterChips component for displaying and managing custom filters with context menu options for pinning, editing, and deleting filters.
- Created FilterSection component to integrate CustomFilterChips and provide UI for creating advanced filters and displaying active filters.
- Introduced useCustomFilters hook to manage custom filter logic, including loading, saving, updating, and deleting filters.
- Added AdvancedFilterBuilder modal for creating and editing advanced filters with dynamic condition handling.
- Implemented SaveFilterModal for saving filters with preview functionality and validation for filter names.
- Enhanced useChoreFilters and useProjectFilter hooks for improved filter management and state handling.
2026-01-26 01:58:21 -05:00
Mo Tarbin
7c8fa27aaf feat: Add unarchive functionality to ChoreView and enhance project management features
- Implemented unarchive button for archived chores in ChoreView.
- Updated chore status handling to disable actions for archived chores.
- Enhanced MyChores component to filter tasks based on project selection, including a default project.
- Improved ProjectModal to streamline project creation and editing with a new footer layout.
- Refactored ProjectView to accurately count tasks for default and user projects.
- Added project selection dropdown in AddTaskModal with default project handling.
- Updated NavBar to handle logout using apiClient.
- Enhanced ProjectSelector to manage projects with a new menu item for project management.
2026-01-17 19:35:36 -05:00
Mo Tarbin
7fbae16a53 Add Support Project 2026-01-16 12:11:03 -05:00
Mo Tarbin
ba17a5592c feat: add ProjectModal component for creating and editing projects 2026-01-01 01:32:23 -05:00
Mo Tarbin
409c5a0ba3 enhance user input validation and parsing for usernames, points, and labels 2025-10-02 21:45:25 -04:00
Mo Tarbin
d41d6bd758 feat: add sub user management features including creation, deletion, and password updates 2025-09-28 19:12:26 -04:00