このコミットが含まれているのは:
@@ -156,6 +156,22 @@ const DialogueProvider: FC<Props> = ({ children }) => {
|
||||
},
|
||||
[closeRequest, pendingIds])
|
||||
|
||||
const dismiss = async (request: DialogueRequest) => {
|
||||
if (request.kind === 'form' && request.options.onCancel != null)
|
||||
{
|
||||
setPendingIds (current => [...current, request.id])
|
||||
try
|
||||
{
|
||||
if (await request.options.onCancel () === false) return
|
||||
}
|
||||
finally
|
||||
{
|
||||
setPendingIds (current => current.filter (id => id !== request.id))
|
||||
}
|
||||
}
|
||||
closeRequest (request.id, request.kind === 'confirm' ? false : null)
|
||||
}
|
||||
|
||||
const active = queue[0]
|
||||
const startActions =
|
||||
active?.kind === 'form'
|
||||
@@ -179,7 +195,7 @@ const DialogueProvider: FC<Props> = ({ children }) => {
|
||||
nestedConfirm?.parentId === active.id
|
||||
|| pendingIds.includes (active.id)
|
||||
if (!(open) && !(blocked))
|
||||
closeRequest (active.id, active.kind !== 'confirm' && null)
|
||||
dismiss (active)
|
||||
}}>
|
||||
<DialogContent
|
||||
closeLabel={(active.kind === 'confirm' || active.kind === 'choice')
|
||||
@@ -244,7 +260,7 @@ const DialogueProvider: FC<Props> = ({ children }) => {
|
||||
<Button
|
||||
className="w-full md:w-auto"
|
||||
variant="outline"
|
||||
onClick={() => closeRequest (active.id)}
|
||||
onClick={() => dismiss (active)}
|
||||
disabled={pendingIds.includes (active.id)
|
||||
|| nestedConfirm?.parentId === active.id}>
|
||||
{active.options.cancelText ?? label ('actions.cancel')}
|
||||
|
||||
新しいイシューから参照
ユーザーをブロックする