confirmation prompts on alias requests

This commit is contained in:
Lea 2024-01-18 16:31:29 +01:00
parent 21405f9d1d
commit 9c1f7d5739
Signed by: Lea
GPG key ID: 1BAFFE8347019C42
2 changed files with 22 additions and 14 deletions

View file

@ -1,6 +1,7 @@
"use client"; "use client";
import { approveAlias, deleteAlias, fetchAllAliases } from "@/lib/actions"; import { approveAlias, deleteAlias, fetchAllAliases } from "@/lib/actions";
import GenericConfirmationDialog from "@/lib/components/ui/GenericConfirmationDialog";
import GhostMessage from "@/lib/components/ui/GhostMessage"; import GhostMessage from "@/lib/components/ui/GhostMessage";
import LoadingSpinner from "@/lib/components/ui/LoadingSpinner"; import LoadingSpinner from "@/lib/components/ui/LoadingSpinner";
import { AliasEntry } from "@/lib/db"; import { AliasEntry } from "@/lib/db";
@ -44,22 +45,28 @@ export default function Aliases() {
<Table.Cell justify='start'>{alias.alias}</Table.Cell> <Table.Cell justify='start'>{alias.alias}</Table.Cell>
<Table.Cell justify='end'> <Table.Cell justify='end'>
<Flex gap='3' justify="end"> <Flex gap='3' justify="end">
<Button <GenericConfirmationDialog
size="1" title="Approve alias request"
variant="outline" description={<>Are you sure you want to approve <Code>{alias.address}</Code>&apos;s request for <Code>{alias.alias}</Code>?</>}
onClick={() => approveAlias(alias.alias) labelConfirm="Approve"
.then(() => { setAliases(aliases?.map((a) => a.id == alias.id ? { ...a, pending: false } : a)); })} action={() => approveAlias(alias.alias)
.then(() => setAliases(aliases?.map((a) => a.id == alias.id ? { ...a, pending: false } : a)))}
> >
Approve <Button size="1" variant="surface">
</Button> Approve
<Button </Button>
size="1" </GenericConfirmationDialog>
variant="soft" <GenericConfirmationDialog
onClick={() => deleteAlias(alias.alias) title="Deny alias request"
description={<>Are you sure you want to deny <Code>{alias.address}</Code>&apos;s request for <Code>{alias.alias}</Code>?</>}
labelConfirm="Delete"
action={() => deleteAlias(alias.alias)
.then(() => setAliases(aliases?.filter(a => a.id != alias.id)))} .then(() => setAliases(aliases?.filter(a => a.id != alias.id)))}
> >
Delete <Button size="1" variant="soft">
</Button> Delete
</Button>
</GenericConfirmationDialog>
</Flex> </Flex>
</Table.Cell> </Table.Cell>
</Table.Row> </Table.Row>
@ -110,6 +117,7 @@ export default function Aliases() {
<Button variant="outline">Cancel</Button> <Button variant="outline">Cancel</Button>
</Dialog.Close> </Dialog.Close>
<Dialog.Close> <Dialog.Close>
<Button <Button
variant="soft" variant="soft"
onClick={() => deleteAlias(alias.alias) onClick={() => deleteAlias(alias.alias)

View file

@ -23,7 +23,7 @@ export default function GenericConfirmationDialog({
<Button variant="outline">Cancel</Button> <Button variant="outline">Cancel</Button>
</Dialog.Close> </Dialog.Close>
<Dialog.Close> <Dialog.Close>
<Button variant="solid" onClick={action}>{labelConfirm ?? "Confirm"}</Button> <Button variant="soft" onClick={action}>{labelConfirm ?? "Confirm"}</Button>
</Dialog.Close> </Dialog.Close>
</Flex> </Flex>
</Dialog.Content> </Dialog.Content>