settings.ts 779 B

1234567891011121314151617181920212223242526272829303132
  1. import { defineStore } from "pinia";
  2. export const useSettingsStore = defineStore("settings", {
  3. state: () => ({
  4. originalUser: {},
  5. modifiedUser: {}
  6. }),
  7. actions: {
  8. updateOriginalUser(payload) {
  9. const { property, value } = payload;
  10. property.split(".").reduce(
  11. // eslint-disable-next-line no-return-assign
  12. (o, p, i) =>
  13. (o[p] =
  14. // eslint-disable-next-line no-plusplus
  15. property.split(".").length === ++i
  16. ? JSON.parse(JSON.stringify(value))
  17. : o[p] || {}),
  18. this.originalUser
  19. );
  20. },
  21. setUser(user) {
  22. this.originalUser = user;
  23. this.modifiedUser = JSON.parse(JSON.stringify(user));
  24. }
  25. },
  26. getters: {
  27. isGithubLinked: state => state.originalUser.github,
  28. isPasswordLinked: state => state.originalUser.password
  29. }
  30. });