shareConfig.model.ts 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import { getStorage, removeStorage, setStorage } from "../storage";
  2. export interface ShareConfig {
  3. title: string,
  4. imageUrl: string,
  5. query: string,
  6. share_ext : string //服务端需要拼接的参数
  7. }
  8. const STORAGE_KEY = "shareConfig";
  9. const DEFAULT_CONFIG: ShareConfig = {
  10. title: "",
  11. imageUrl: "",
  12. query: "",
  13. share_ext : ""
  14. }
  15. class ShareConfigModel {
  16. private static instance: ShareConfigModel | null = null;
  17. private data: ShareConfig;
  18. private constructor() {
  19. this.data = getStorage<ShareConfig>(STORAGE_KEY, DEFAULT_CONFIG) ?? DEFAULT_CONFIG;
  20. }
  21. static getInstance(): ShareConfigModel {
  22. if (!ShareConfigModel.instance) {
  23. ShareConfigModel.instance = new ShareConfigModel();
  24. }
  25. return ShareConfigModel.instance;
  26. }
  27. get(): ShareConfig {
  28. return this.data;
  29. }
  30. save(config: ShareConfig): boolean {
  31. this.data = config;
  32. return setStorage(STORAGE_KEY, config);
  33. }
  34. clear(): boolean {
  35. this.data = { ...DEFAULT_CONFIG };
  36. return removeStorage(STORAGE_KEY);
  37. }
  38. }
  39. export default ShareConfigModel;