1
0
Dominik Pschenitschni 96884372b4
fix(projects): trigger only single mutation
Previously these store methods created multiple edits on deep objects in the store or edited a deep nested object directly.

This is bad because:
- multiple edits lead to multiple triggers of all the watchers on the project.
- in theory we should listen deep to a project if we use some deep reactive value of a project, if we want deep updates. Because this is easy to forget, it's better to update the project directly. For this the method `setProject` already existed in the store. This is no real overhead because Vue is smart enough to only trigger listeners that use data of the modified state.

By modifying only a copy of the view and submitting the modified result __once__ we can save us a lot of headache.

PS: I'm not sure if there were any visible problems, because Vue is really fast and the reactivity system works quite well. Regardless of this we should try not to modify state unnecessarily.
(cherry picked from commit 1e632397d29e9d45609b9271e00111c0a6cb2c57)
2024-08-12 20:16:15 +02:00
2024-02-08 14:31:02 +01:00
2021-06-02 21:20:22 +00:00
2022-08-03 20:06:35 +02:00
2024-07-17 09:24:49 +02:00
2024-06-13 14:41:09 +02:00
2020-12-23 16:41:52 +01:00
2024-07-18 16:56:04 +02:00
2024-06-19 14:05:41 +00:00

Build Status License: AGPL v3 Install Docker Pulls Swagger Docs Go Report Card

Vikunja

The Todo-app to organize your life.

If Vikunja is useful to you, please consider buying me a coffee, sponsoring me on GitHub or buying a sticker pack. I'm also offering a hosted version of Vikunja if you want a hassle-free solution for yourself or your team.

Table of contents

Security Reports

If you find any security-related issues you don't want to disclose publicly, please use the contact information on our website.

Features

See the features page on our website for a more exhaustive list or try it on try.vikunja.io!

Docs

All docs can be found on the Vikunja home page.

Roadmap

See the roadmap (hosted on Vikunja!) for more!

Contributing

Please check out the contribuition guidelines on the website.

License

This project is licensed under the AGPLv3 License. See the LICENSE file for the full license text.

Description
No description provided
Readme 63 MiB
Languages
Go 73.2%
Vue 15%
TypeScript 10.1%
SCSS 0.9%
Smarty 0.4%
Other 0.3%