From ca0c5409b52ea93eaf92f69239577a5412e5c060 Mon Sep 17 00:00:00 2001 From: Aaron Harper Date: Mon, 13 May 2024 17:24:57 -0400 Subject: [PATCH] Archive app (#1338) * Add app archive support * gql * Tweak copy * Delete function archive button * AlertModal * Fix * Bring back function archive button * Simplify code * Make alert modal more similar to modal --------- Co-authored-by: Ana --- .../apps/[externalID]/ArchiveButton.tsx | 38 ++++++ .../apps/[externalID]/ArchiveModal.tsx | 100 ++++++++++++++++ .../apps/[externalID]/ResyncButton.tsx | 10 +- .../apps/[externalID]/layout.tsx | 20 +++- .../apps/[externalID]/useNavData.ts | 3 + .../env/[environmentSlug]/apps/useApps.ts | 3 +- .../functions/[slug]/ArchiveButton.tsx | 108 ++---------------- .../functions/[slug]/PauseButton.tsx | 4 +- .../functions/[slug]/layout.tsx | 4 + .../src/components/ArchivedAppBanner.tsx | 61 ++++++++++ ui/apps/dashboard/src/gql/gql.ts | 28 +++-- ui/apps/dashboard/src/gql/graphql.ts | 41 +++++-- .../src/components/App/AppCard.tsx | 1 + .../src/CancelRunButton/CancelRunModal.tsx | 2 +- .../components/src/Modal/AlertModal.tsx | 8 +- 15 files changed, 298 insertions(+), 133 deletions(-) create mode 100644 ui/apps/dashboard/src/app/(organization-active)/(dashboard)/env/[environmentSlug]/apps/[externalID]/ArchiveButton.tsx create mode 100644 ui/apps/dashboard/src/app/(organization-active)/(dashboard)/env/[environmentSlug]/apps/[externalID]/ArchiveModal.tsx create mode 100644 ui/apps/dashboard/src/components/ArchivedAppBanner.tsx diff --git a/ui/apps/dashboard/src/app/(organization-active)/(dashboard)/env/[environmentSlug]/apps/[externalID]/ArchiveButton.tsx b/ui/apps/dashboard/src/app/(organization-active)/(dashboard)/env/[environmentSlug]/apps/[externalID]/ArchiveButton.tsx new file mode 100644 index 0000000000..76709a6588 --- /dev/null +++ b/ui/apps/dashboard/src/app/(organization-active)/(dashboard)/env/[environmentSlug]/apps/[externalID]/ArchiveButton.tsx @@ -0,0 +1,38 @@ +import { useState } from 'react'; +import { Button } from '@inngest/components/Button'; + +import { ArchiveModal } from './ArchiveModal'; + +type Props = { + appID: string; + disabled?: boolean; + isArchived: boolean; +}; + +export function ArchiveButton({ appID, disabled = false, isArchived }: Props) { + const [isModalVisible, setIsModalVisible] = useState(false); + + let label = 'Archive'; + if (isArchived) { + label = 'Unarchive'; + } + + return ( + <> +