feat: warn danger actions for dev

This commit is contained in:
三咲智子 2022-11-29 01:46:00 +08:00
parent ef0173a356
commit 259e11c097
No known key found for this signature in database
GPG key ID: 69992F2250DFD93E
3 changed files with 24 additions and 5 deletions

View file

@ -97,6 +97,12 @@ const deleteStatus = async () => {
const deleteAndRedraft = async () => { const deleteAndRedraft = async () => {
// TODO confirm to delete // TODO confirm to delete
if (process.dev) {
// eslint-disable-next-line no-alert
const result = confirm('[DEV] Are you sure you want to delete and re-draft this post?')
if (!result)
return
}
const { text } = await useMasto().statuses.remove(status.id) const { text } = await useMasto().statuses.remove(status.id)
openPublishDialog('dialog', getDraftFromStatus(status, text), true) openPublishDialog('dialog', getDraftFromStatus(status, text), true)

View file

@ -21,11 +21,22 @@ export function openSigninDialog() {
export function openPublishDialog(draftKey = 'dialog', draft?: Draft, overwrite = false): void { export function openPublishDialog(draftKey = 'dialog', draft?: Draft, overwrite = false): void {
dialogDraftKey.value = draftKey dialogDraftKey.value = draftKey
if (overwrite) {
// TODO overwrite warning if (draft) {
if (overwrite && !isEmptyDraft(currentUserDrafts.value[draftKey])) {
// TODO overwrite warning
// TODO don't overwrite, have a draft list
if (process.dev) {
// eslint-disable-next-line no-alert
const result = confirm('[DEV] Are you sure you overwrite draft content?')
if (!result)
return
}
}
if (overwrite || !currentUserDrafts.value[draftKey])
currentUserDrafts.value[draftKey] = draft
} }
if (draft && (overwrite || !currentUserDrafts.value[draftKey]))
currentUserDrafts.value[draftKey] = draft
isPublishDialogOpen.value = true isPublishDialogOpen.value = true
} }

View file

@ -61,7 +61,9 @@ export function getReplyDraft(status: Status) {
} }
} }
export const isEmptyDraft = (draft: Draft) => { export const isEmptyDraft = (draft: Draft | null | undefined) => {
if (!draft)
return true
const { params, attachments } = draft const { params, attachments } = draft
const status = params.status || '' const status = params.status || ''
return (status.length === 0 || status === '<p></p>') return (status.length === 0 || status === '<p></p>')