add: 下書きに関する関数等の切り離し
This commit is contained in:
parent
ceee4800b8
commit
83aca6e7ec
44
packages/frontend/src/scripts/note-drafts.ts
Normal file
44
packages/frontend/src/scripts/note-drafts.ts
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
import * as Misskey from 'misskey-js';
|
||||||
|
import type { PollEditorModelValue } from '@/components/MkPollEditor.vue';
|
||||||
|
import type { DeleteScheduleEditorModelValue } from '@/components/MkDeleteScheduleEditor.vue';
|
||||||
|
import { miLocalStorage } from '@/local-storage.js';
|
||||||
|
|
||||||
|
export type NoteDraft = {
|
||||||
|
updatedAt: Date;
|
||||||
|
data: {
|
||||||
|
text: string;
|
||||||
|
useCw: boolean;
|
||||||
|
cw: string | null;
|
||||||
|
visibility: (typeof Misskey.noteVisibilities)[number];
|
||||||
|
localOnly: boolean;
|
||||||
|
files: Misskey.entities.DriveFile[];
|
||||||
|
poll: PollEditorModelValue | null;
|
||||||
|
scheduledNoteDelete: DeleteScheduleEditorModelValue | null;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
export function getAll() {
|
||||||
|
const drafts = miLocalStorage.getItem('drafts');
|
||||||
|
if (!drafts) return {};
|
||||||
|
return JSON.parse(drafts) as Record<string, NoteDraft | undefined>;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function get(key: string) {
|
||||||
|
const draft = getAll()[key];
|
||||||
|
return draft ?? null;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function set(key: string, draft: NoteDraft['data']) {
|
||||||
|
const drafts = getAll();
|
||||||
|
drafts[key] = {
|
||||||
|
updatedAt: new Date(),
|
||||||
|
data: draft,
|
||||||
|
};
|
||||||
|
miLocalStorage.setItem('drafts', JSON.stringify(drafts));
|
||||||
|
}
|
||||||
|
|
||||||
|
export function remove(key: string) {
|
||||||
|
const drafts = getAll();
|
||||||
|
delete drafts[key];
|
||||||
|
miLocalStorage.setItem('drafts', JSON.stringify(drafts));
|
||||||
|
}
|
Loading…
Reference in a new issue