Commit Graph

1080 Commits

Author SHA1 Message Date
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
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
Mo Tarbin
6bc5982294 fix: update key prop in SelectModal options to use item.id for consistency 2026-08-14 08:57:53 -04:00
Mo Tarbin
1dd01e0eca Fix: Fixing Select start render below the modal make it rendioner in modal but keep the modal small so completely overlap with it. fixing that by applying custom global class 2026-08-14 08:55:25 -04:00
Mo Tarbin
7ec8bfe7e6 Release 1.2.46
Some checks failed
Build validation / build (push) Has been cancelled
v1.2.46
2026-08-14 01:57:07 -04:00
Mohamad Tarbin
bc62f22e6d Merge pull request #220 from donetick/0812-fixes
fix: update chore ID reference in ChoresOverview and clean up unused …
2026-08-14 01:46:35 -04:00
Mo Tarbin
9e9659c9fe fix: update chore ID reference in ChoresOverview and clean up unused code in HistoryDetailModal and AdvancedOptionsSection 2026-08-14 01:43:01 -04:00
Mohamad Tarbin
ef7810f2d2 Merge pull request #217 from donetick/l10n_develop
New Crowdin updates
2026-08-14 01:36:31 -04:00
Mohamad Tarbin
c8c9f46623 Merge pull request #219 from donetick/0812-fixes
fix: update STATUS_CONFIG to use labelKey for localization
2026-08-14 01:36:12 -04:00
Mo Tarbin
95b31fb14d fix: update STATUS_CONFIG to use labelKey for localization 2026-08-14 01:35:26 -04:00
Mohamad Tarbin
cbba7f6b79 Merge pull request #218 from donetick/analytics
Integrate PostHog and Plausible for enhanced analytics and privacy management
2026-08-14 01:29:02 -04:00
Mo Tarbin
fc12f93316 Merge remote-tracking branch 'origin/develop' into analytics
# Conflicts:
#	public/locales/en/settings.json
#	src/views/Settings/DeveloperSettings.jsx
#	src/views/Settings/SettingsOverview.jsx
2026-08-14 01:26:51 -04:00
Mo Tarbin
27560a078c feat: integrate Plausible analytics script and adjust routing for marketing site 2026-08-14 01:13:46 -04:00
Mohamad Tarbin
cf460b3ba7 New translations timer.json (Portuguese, Brazilian)
[ci skip]
2026-08-14 01:05:45 -04:00
Mohamad Tarbin
bd54ee6ab8 New translations things.json (Portuguese, Brazilian)
[ci skip]
2026-08-14 01:05:44 -04:00
Mohamad Tarbin
4e0c7eb03c New translations projects.json (Portuguese, Brazilian)
[ci skip]
2026-08-14 01:05:43 -04:00
Mohamad Tarbin
9e6f21fc18 New translations points.json (Portuguese, Brazilian)
[ci skip]
2026-08-14 01:05:42 -04:00
Mohamad Tarbin
a71ccbe16b New translations labels.json (Portuguese, Brazilian)
[ci skip]
2026-08-14 01:05:40 -04:00
Mohamad Tarbin
dce6ba46f2 New translations history.json (Portuguese, Brazilian)
[ci skip]
2026-08-14 01:05:39 -04:00
Mohamad Tarbin
3d140091d4 New translations filters.json (Portuguese, Brazilian)
[ci skip]
2026-08-14 01:05:38 -04:00
Mohamad Tarbin
3e9c9b465d New translations auth.json (Portuguese, Brazilian)
[ci skip]
2026-08-14 01:05:37 -04:00
Mohamad Tarbin
578a5dbc84 New translations timer.json (Chinese Simplified)
[ci skip]
2026-08-14 01:05:36 -04:00
Mohamad Tarbin
87a623657f New translations things.json (Chinese Simplified)
[ci skip]
2026-08-14 01:05:35 -04:00
Mohamad Tarbin
a1c614d1ff New translations projects.json (Chinese Simplified)
[ci skip]
2026-08-14 01:05:34 -04:00
Mohamad Tarbin
bb5acd8204 New translations points.json (Chinese Simplified)
[ci skip]
2026-08-14 01:05:33 -04:00
Mohamad Tarbin
b2a3055840 New translations labels.json (Chinese Simplified)
[ci skip]
2026-08-14 01:05:32 -04:00
Mohamad Tarbin
1a06928f8b New translations history.json (Chinese Simplified)
[ci skip]
2026-08-14 01:05:31 -04:00
Mohamad Tarbin
222b24069c New translations filters.json (Chinese Simplified)
[ci skip]
2026-08-14 01:05:30 -04:00
Mohamad Tarbin
92795317fe New translations auth.json (Chinese Simplified)
[ci skip]
2026-08-14 01:05:28 -04:00
Mohamad Tarbin
a77c63b73c New translations timer.json (Dutch)
[ci skip]
2026-08-14 01:05:27 -04:00
Mohamad Tarbin
415b2af31a New translations things.json (Dutch)
[ci skip]
2026-08-14 01:05:26 -04:00
Mohamad Tarbin
605eb7f4e6 New translations projects.json (Dutch)
[ci skip]
2026-08-14 01:05:25 -04:00
Mohamad Tarbin
1163085c61 New translations points.json (Dutch)
[ci skip]
2026-08-14 01:05:24 -04:00
Mohamad Tarbin
0ed140a9aa New translations labels.json (Dutch)
[ci skip]
2026-08-14 01:05:23 -04:00
Mohamad Tarbin
57e75d689a New translations history.json (Dutch)
[ci skip]
2026-08-14 01:05:22 -04:00
Mohamad Tarbin
f3808dc0e1 New translations filters.json (Dutch)
[ci skip]
2026-08-14 01:05:20 -04:00
Mohamad Tarbin
dd04d6536c New translations auth.json (Dutch)
[ci skip]
2026-08-14 01:05:19 -04:00
Mohamad Tarbin
96ccf63367 New translations timer.json (Japanese)
[ci skip]
2026-08-14 01:05:18 -04:00
Mohamad Tarbin
735b288c40 New translations things.json (Japanese)
[ci skip]
2026-08-14 01:05:17 -04:00
Mohamad Tarbin
3eedf2bc6b New translations projects.json (Japanese)
[ci skip]
2026-08-14 01:05:16 -04:00