`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.
Donetick Frontend
The Donetick Frontend is Frontend piece for Donetick written in javascript with React
What is Donetick?
An open-source, user-friendly app for managing tasks and chores, featuring customizable options to help you and others stay organized.
Why I made Donetick?
As an avid for open-source, I was eager to create a solution that could benefit the wider community. Donetick started as a personal project to address my own chore management needs, but it has evolved into bigger tool and decide to open source it for anyone seeking a customizable and privacy-focused task management tool
Features
- Task and Chore Management: Easily create, edit, and manage tasks and chores for yourself or your group.
- Shared To-Do Lists: Create "Circles" to collaborate on tasks with family or your group
- Assignee Assignment: Assign tasks to specific individuals or rotate them automatically using customizable strategies.
- Recurring Tasks: Schedule tasks to repeat daily, weekly, monthly, or yearly, with flexible customization options.
- Progress Tracking: Track the completion status of tasks and view historical data.
Development Environment
Follow the full instructions here: https://github.com/donetick/donetick?tab=readme-ov-file#development-environment
Contributing
Contributions are welcome! If you would like to contribute to Donetick, please follow these steps:
- Fork the repository
- Create a new branch:
git checkout -b feature/your-feature-name - Make your changes and commit them:
git commit -m 'Add some feature' - Push to the branch:
git push origin feature/your-feature-name - Submit a pull request
Need Help:
Donetick is a work in progress and has been a fantastic learning experience for me as I've honed my React skills,I'm looking for collaborators to help improve and refine the Donetick. Feel free to open PR or suggest changes.
Plans:
My goal is to expand Donetick by offering a hosted infrastructure option. This will make it even easier for users to access and utilize Donetick's features without the need for self-hosting.
While maintaining Donetick's commitment to open source, this hosted option will provide a seamless, out-of-the-box experience for those who prefer a managed solution.
License
This project is licensed under the AGPLv3 License. See the LICENSE file for more details. I might consider changing it later to something else
