1118 Commits

Author SHA1 Message Date
Mo Tarbin
b3b3a0e5a8 release 1.2.49
Some checks failed
Build validation / build (push) Has been cancelled
v1.2.49
2026-08-18 08:50:46 -04:00
Mohamad Tarbin
a92eeaf149 Merge pull request #237 from donetick/missing-translation
Missing translation Part 1
2026-08-18 08:44:45 -04:00
Mo Tarbin
86989362fe fix: standardize section separators in README.md 2026-08-18 08:41:48 -04:00
Mo Tarbin
cb81749dbf fix: update ESLint ignores and improve i18n audit script readability 2026-08-18 08:23:19 -04:00
Mo Tarbin
0bac419c3a feat: enhance localization and user experience across various components
- Added new localization keys for project management, settings, and onboarding views.
- Updated labels and placeholders in project modal, password change modal, and backup/restore modal for better clarity.
- Improved user feedback messages for password mismatch and backup creation failures.
- Enhanced the timer details view with localized strings for active work, sessions, and distribution.
- Refined the due date picker modal with localized quick date and time options.
- Updated photo task modal and scan panel to include localized text for better accessibility.
- Ensured consistent use of translation function for all user-facing strings.
2026-08-18 01:31:16 -04:00
Mo Tarbin
1fa4748168 feat: integrate i18n for translation in various components
- Updated NativeCancelSubscriptionModal to use translation keys for titles and messages.
- Enhanced CircleSetupView with translation for notifications and UI text.
- Refactored ThingsView to implement translation for notifications, titles, and descriptions.
- Added translation support in AdvancedOptionsSection for labels and descriptions.
- Implemented i18n in RepeatPickerField for various UI elements and labels.
2026-08-18 01:27:57 -04:00
Mo Tarbin
c1318a2cc4 feat: add i18n support to Settings and AddTaskModal components
- Integrated translation functionality using react-i18next in Settings.jsx
- Replaced hardcoded strings with translation keys for better localization support
- Updated AddTaskModal.jsx to include translations for task-related strings
- Enhanced user experience by providing localized messages for various actions and notifications
2026-08-18 01:11:26 -04:00
Mo Tarbin
cc2e656e14 update localization for notifications, colors, and icons across multiple components 2026-08-18 00:06:34 -04:00
Mo Tarbin
77f87daeba Release 1.2.48
Some checks failed
Build validation / build (push) Has been cancelled
v1.2.48
2026-08-17 01:34:15 -04:00
Mohamad Tarbin
64479f0858 Merge pull request #236 from donetick/0815-fixes
0815 fixes
2026-08-17 01:03:36 -04:00
Mohamad Tarbin
4c235c7d00 Merge branch 'develop' into 0815-fixes 2026-08-17 01:03:29 -04:00
Mo Tarbin
c0d2d5a9ec fix: update terminology from "Report a Bug" to "Report an Issue" across multiple components 2026-08-16 18:03:34 -04:00
Mo Tarbin
dae647a4be feat: enhance global search with navigation mode and updated action hints 2026-08-16 17:56:50 -04:00
Mo Tarbin
f27bb79a07 fix: ensure untranslated strings are skipped in Crowdin configuration 2026-08-16 17:08:44 -04:00
Mohamad Tarbin
631d273b02 Merge pull request #174 from scottanderson/eslint3
Pre-commit hooks and CI enforcement for eslint and prettier
2026-08-16 16:32:25 -04:00
Scott Anderson
d4b21f8f4e Enable CI enforcement and pre-commit hooks 2026-08-16 15:51:14 -04:00
Mohamad Tarbin
a407606f1c Merge pull request #235 from donetick/eslint3
ran npx prettier -w .
2026-08-16 15:38:12 -04:00
Mohamad Tarbin
4f21242e39 ran npx prettier -w . 2026-08-16 15:35:44 -04:00
Mohamad Tarbin
2a4f085e18 Merge pull request #234 from donetick/eslint3
ran npm run lint:fix
2026-08-16 15:33:13 -04:00
Mo Tarbin
253514a6e9 remove unused view mode logic and simplify card rendering in ArchivedTasks and CompactChoreCard 2026-08-16 14:07:54 -04:00
Mo Tarbin
e18c829ae7 feat: integrate PostHog for sourcemap uploads and update dependencies 2026-08-16 13:52:42 -04:00
Mo Tarbin
9329eaf3a9 update consent handling and remove unused error capture logic 2026-08-16 13:13:00 -04:00
Mohamad Tarbin
292597e7c6 ran npm run lint:fix 2026-08-16 11:52:40 -04:00
Mohamad Tarbin
e377fb5b06 Merge pull request #233 from donetick/0814-fixes
0814 fixes
2026-08-16 11:32:06 -04:00
Mohamad Tarbin
84f86032c9 Merge pull request #231 from everysingletear/fix/activities-card-scope
fix: ActivitiesCard crashes — t() in a prop default has no scope
2026-08-16 11:27:12 -04:00
Mo Tarbin
834db6b39d Merge remote-tracking branch 'origin/develop' into 0814-fixes
# Conflicts:
#	public/locales/en/labels.json
#	src/views/Chores/MyChores.jsx
#	src/views/Chores/components/ChoreToolbarPrototype.jsx
#	src/views/Chores/components/MultiSelectToolbar.jsx
#	src/views/Chores/hooks/useChoreActions.js
2026-08-16 02:59:24 -04:00
Mo Tarbin
97453803d6 feat: add new view options and update keyboard shortcuts for improved navigation 2026-08-16 02:53:53 -04:00
Mo Tarbin
1c99bd1886 feat: enhance chore management with new modals and filter options 2026-08-16 02:46:04 -04:00
Mo Tarbin
5359ae193b add SortAndFilterMenu component and integrate it into various views for enhanced sorting and filtering capabilities 2026-08-16 02:16:33 -04:00
Mo Tarbin
325d5e6df7 fix: update assignee filter logic and improve display options in MyChores and ChoreToolbarPrototype 2026-08-16 02:07:44 -04:00
Mo Tarbin
79d92ca8c9 add quick actions for creating labels, projects, and filters in GlobalSearchPalette
refactor: move stripHtml function to Helpers utility

fix: update chore filters to include raw description for better search indexing
enhance: implement search parameter handling for modal openings in ProjectView and LabelView
2026-08-16 01:36:20 -04:00
Mo Tarbin
2480049fd1 Improve user feedback and modal behavior in ErrorReportModal and PolicyUpdateModal 2026-08-16 01:26:28 -04:00
Mo Tarbin
5c71e4ce58 fix: handle manual bug reports by modifying error structure in submitErrorReport 2026-08-16 01:07:55 -04:00
Mo Tarbin
77834aa3c0 fix: add z-index to AppModal handle as ReportIssue modal X was not pressable 2026-08-16 00:32:14 -04:00
Mo Tarbin
76fb3500ec fix: update PolicyUpdateModal to open documents in system browser 2026-08-16 00:31:47 -04:00
Mo Tarbin
2d5dd81371 Fix : https://github.com/donetick/donetick/issues/794 2026-08-15 21:36:56 -04:00
Mo Tarbin
c6f7ce48d8 feat: enhance chore actions with bulk operations and new label detail view
- Refactored bulk operations in useChoreActions to streamline completion, archiving, deletion, and other actions.
- Introduced new hooks for managing local chore state during bulk operations.
- Added handleBulkDueDate, handleBulkAssignee, handleBulkPriority, and handleBulkLabels functions for better task management.
- Implemented a new LabelDetailView component to display and manage tasks associated with a specific label.
- Updated LabelView to navigate to LabelDetailView on label click.
- Improved multi-select functionality to support range selection and summary of selected chores.
- Minor UI adjustments and text updates in AdvancedOptionsSection for clarity.
2026-08-15 12:33:39 -04:00
everysingletear
64aca507af fix: ChoresOverview does not parse — hook inserted into an object literal
`CHORE_STATUS` is a module-level object literal, and a `useTranslation`
call ended up inside it:

    const CHORE_STATUS = {
      const { t } = useTranslation('chores')
      NO_DUE_DATE: 'No due date',

That is a syntax error, so the file cannot be parsed at all. It does not
break the build because nothing imports `ChoresOverview` — vite never
compiles it — but it breaks eslint, editors, and anything else that walks
the whole tree.

The hook moves into the component, which is where the file's `t()` calls
actually live.

This one arrived with #210, the same way #216 brought the ActivitiesCard
crash: my tooling wrote the hook in mechanically and nothing downstream
parsed the result. Both are now covered by the `no-undef` pass I described
in the other commit — it reports the parse error too.
2026-08-15 17:02:02 +08:00
everysingletear
d813971809 fix: ActivitiesCard crashes — t() in a prop default has no scope
`ActivitiesCard` takes its title as `({ title = t('activity.title') })`.
A default parameter is evaluated in the function's own scope, where `t`
does not exist: the only `t` in the file is bound inside `ActivityItem`,
a separate component. `Sidepanel` renders the card without a `title`, and
`activities` is `enabled: true` in `DEFAULT_SIDEPANEL_CONFIG`, so the
default is always evaluated on a desktop-width screen.

The hook moves into the component body and the title falls back there
instead. Same rendered output; three render sites now read `displayTitle`.

This is my regression: it arrived with #216, which described itself as
"no behaviour change". It was not caught because a bundler cannot flag it
— an unbound `t` is indistinguishable from a global — and my checks only
verified that keys and imports existed, not that `t` was in scope. It is
visible in the built bundle: `({title:e=t("activity.title")})` keeps the
literal `t` because the minifier cannot rename a free variable, while a
working call nearby minifies to `q=e("common.confirm")`.

I have added an eslint `no-undef` pass to my own pipeline and run it
before sending anything from now on.
2026-08-15 17:01:18 +08:00
Mo Tarbin
7729917611 enhance label search functionality with Fuse.js integration and improved UI 2026-08-15 00:45:51 -04:00
Mohamad Tarbin
96ba672b09 Merge pull request #210 from everysingletear/i18n/chores
i18n: extract the chore list and its modals (Part of #145)
2026-08-15 00:03:09 -04:00
everysingletear
7d36090e46 i18n: extract the chore list and its modals (chores namespace)
Part of #145.

Twenty-three files across the task list zone: the list and card views,
sorting and grouping, multi-select and its toolbar and help sheet,
archived tasks, the assignee card, the chore action menu, the
nudge/NFC/photo modals, the rich text editor, the scan panel, the
notification templates and the keyboard-shortcut toasts.

Extends the existing `chores` namespace, so `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 (247 call sites).

Two values are matched loosely and worth naming: archived.closeMultiSelect
in both the archived view and the toolbar. The base builds that tooltip as
`${size === 0 ? 'Close' : 'Clear'} multi-select (Esc)`, so only one branch
of the ternary exists contiguously in the source. Both keys hold exactly
what each branch renders; the tooltip is kept whole so a translator can
reorder it.

Rebased on current `develop` again after #215 and #216 landed — the
dictionary conflict was theirs, not the code's. No code file in this PR
was touched upstream in the meantime.
2026-08-15 09:03:28 +08:00
Mohamad Tarbin
f43369c960 Merge pull request #229 from donetick/revert-175-enable-dependabot
Revert "Enable dependabot"
2026-08-14 18:56:30 -04:00
Mohamad Tarbin
64fa636413 Revert "Enable dependabot" 2026-08-14 18:56:17 -04:00
Mohamad Tarbin
c1f6431174 Merge pull request #175 from scottanderson/enable-dependabot
Enable dependabot
2026-08-14 18:48:46 -04:00
Mohamad Tarbin
537ab0568b Merge pull request #216 from everysingletear/i18n/regen
i18n: extract the remaining task, history, filter and timer screens (Part of #145)
2026-08-14 18:41:00 -04:00
Mohamad Tarbin
b095f26d61 Merge branch 'develop' into i18n/regen 2026-08-14 18:40:51 -04:00
Mohamad Tarbin
2d776e973a Merge pull request #215 from everysingletear/i18n/leftovers
i18n: extract the strings left behind in already-localized screens (Part of #145)
2026-08-14 18:40:07 -04:00
Mo Tarbin
ddb726ad1f Bump version to 1.2.47
Some checks failed
Build validation / build (push) Has been cancelled
v1.2.47
2026-08-14 08:59:25 -04:00
Mohamad Tarbin
67593ec284 Merge pull request #221 from donetick/0813-fixes
0813 fixes
2026-08-14 08:58:34 -04:00