Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
174dc67
feat(billing): add account balance overview with available vs reserve…
baktun14 Aug 11, 2026
2d00316
refactor(billing): replace settings tabs with a left sidebar
baktun14 Aug 11, 2026
75fed8a
feat(billing): redesign account balance overview and rework billing s…
baktun14 Aug 11, 2026
abf3ed6
refactor(billing): address balance overview review nits
baktun14 Aug 11, 2026
7c1e24a
fix(billing): harden payment method and export flows from review
baktun14 Aug 11, 2026
f4fc1d3
refactor(billing): drop dead AKT branch from lease cost helper
baktun14 Aug 12, 2026
25fc09e
refactor(billing): make lease cost helper ACT-only
baktun14 Aug 12, 2026
dc278d8
fix(billing): address review feedback on balance overview PR
baktun14 Aug 12, 2026
951d647
fix(billing): scope background-loading bar to exact billing query keys
baktun14 Aug 12, 2026
3139e4a
fix(billing): align reserved stat count with funded deployments
baktun14 Aug 12, 2026
ffea764
fix(billing): stop gating balance overview on AKT market data
baktun14 Aug 12, 2026
552f5dc
fix(billing): update e2e balance locator for renamed balance overview…
baktun14 Aug 12, 2026
1254a68
refactor(billing): tighten balance overview derivations
baktun14 Aug 12, 2026
7096033
refactor(billing): derive reserved total from the deployment breakdown
baktun14 Aug 12, 2026
012a1e5
revert(billing): remove accidentally committed local e2e report
baktun14 Aug 12, 2026
42491fd
fix(billing): publish wallet balance without waiting for AKT market data
baktun14 Aug 12, 2026
3314cf9
fix(billing): correct auto top-up summary copy and show it for non-ca…
baktun14 Aug 12, 2026
10e6461
fix(billing): make reserve caption and threshold stats match actual b…
baktun14 Aug 12, 2026
c6222a0
fix(billing): keep previous transactions page while the next one loads
baktun14 Aug 12, 2026
3637431
fix(billing): dim the history table while a refetch is in flight
baktun14 Aug 12, 2026
96125c4
fix(deployment): gate redesigned detail page alerts on user after fla…
baktun14 Aug 12, 2026
f841062
fix(billing): show an error state when the balance overview cannot lo…
baktun14 Aug 12, 2026
4108652
refactor(billing): restore isFeatureEnabled page guard for future fla…
baktun14 Aug 12, 2026
879e591
fix(deployment): restore the page URL after detail tab navigation specs
baktun14 Aug 12, 2026
708fe09
refactor(billing): share one UsdValue component between balance overv…
baktun14 Aug 12, 2026
bc8c384
fix(billing): ignore drained deployments when computing balance bar s…
baktun14 Aug 12, 2026
fe8b351
fix(billing): keep showing cached balances when a background refetch …
baktun14 Aug 12, 2026
116c5c6
fix(billing): format balance bar amounts with the app locale like the…
baktun14 Aug 12, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 0 additions & 66 deletions apps/deploy-web/src/components/alerts/AlertsLayout.tsx

This file was deleted.

38 changes: 32 additions & 6 deletions apps/deploy-web/src/components/alerts/AlertsPage.tsx
Original file line number Diff line number Diff line change
@@ -1,18 +1,44 @@
import React, { type FC } from "react";
import { buttonVariants, Tabs, TabsContent, TabsList, TabsTrigger } from "@akashnetwork/ui/components";
import { cn } from "@akashnetwork/ui/utils";
import { Plus } from "iconoir-react";
import Link from "next/link";
import { NextSeo } from "next-seo";

import { AlertsLayout, AlertTabs } from "@src/components/alerts/AlertsLayout";
import { AlertsListContainer } from "@src/components/alerts/AlertsListContainer/AlertsListContainer";
import { AlertsListView } from "@src/components/alerts/AlertsListView/AlertsListView";
import { NotificationChannelsListContainer } from "@src/components/alerts/NotificationChannelsListContainer/NotificationChannelsListContainer";
import { NotificationChannelsListView } from "@src/components/alerts/NotificationChannelsListView/NotificationChannelsListView";
import Layout from "@src/components/layout/Layout";
import { SettingsLayout } from "@src/components/layout/SettingsLayout/SettingsLayout";
import { UrlService } from "@src/utils/urlUtils";

export const AlertsPage: FC = () => {
return (
<Layout containerClassName="flex h-full flex-col justify-between">
<NextSeo title="Configured Alerts" />
<AlertsLayout page={AlertTabs.ALERTS} title="Configured Alerts">
<AlertsListContainer>{props => <AlertsListView {...props} />}</AlertsListContainer>
</AlertsLayout>
<Layout disableContainer containerClassName="flex h-full flex-col justify-between">
<NextSeo title="Alerts" />
<SettingsLayout title="Alerts" description="Get notified about your deployments and manage where alerts are sent.">
Comment thread
baktun14 marked this conversation as resolved.
<Tabs defaultValue="alerts">
<TabsList>
<TabsTrigger value="alerts">Alerts</TabsTrigger>
<TabsTrigger value="channels">Notification Channels</TabsTrigger>
Comment thread
baktun14 marked this conversation as resolved.
</TabsList>

<TabsContent value="alerts" className="space-y-4">
<AlertsListContainer>{props => <AlertsListView {...props} />}</AlertsListContainer>
</TabsContent>

Comment thread
baktun14 marked this conversation as resolved.
<TabsContent value="channels" className="space-y-4">
<div className="flex justify-end">
<Link href={UrlService.newNotificationChannel()} className={cn(buttonVariants({ variant: "default", size: "sm" }), "space-x-2")}>
<Plus />
<span>Create</span>
</Link>
</div>
<NotificationChannelsListContainer>{props => <NotificationChannelsListView {...props} />}</NotificationChannelsListContainer>
</TabsContent>
</Tabs>
</SettingsLayout>
</Layout>
);
};
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import { useNavigationGuard } from "@src/hooks/useNavigationGuard/useNavigationG
import { UrlService } from "@src/utils/urlUtils";

export const CreateNotificationChannelPage: React.FunctionComponent = () => {
const goBack = useBackNav(UrlService.notificationChannels());
const goBack = useBackNav(UrlService.alerts());
const navGuard = useNavigationGuard();

return (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ type Props = {
};

export const EditNotificationChannelPage: React.FunctionComponent<Props> = ({ notificationChannel }: Props) => {
const goBack = useBackNav(UrlService.notificationChannels());
const goBack = useBackNav(UrlService.alerts());
const navGuard = useNavigationGuard();
const saveNavStateAndGoBack = useCallback(() => {
navGuard.toggle({ hasChanges: false });
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,13 @@ import { useSnackbar } from "notistack";

import { ApiKeyList } from "@src/components/api-keys/ApiKeyList";
import Layout from "@src/components/layout/Layout";
import { SettingsLayout } from "@src/components/layout/SettingsLayout/SettingsLayout";
import { useServices } from "@src/context/ServicesProvider";
import { useDeleteApiKey, useUserApiKeys } from "@src/queries/useApiKeysQuery";

export const DEPENDENCIES = {
Layout,
SettingsLayout,
NextSeo,
ApiKeyList,
useUserApiKeys,
Expand Down Expand Up @@ -48,17 +50,19 @@ export function ApiKeysPage({ dependencies: d = DEPENDENCIES }: Props = {}) {
};

return (
<d.Layout isLoading={isLoading}>
<d.Layout isLoading={isLoading} disableContainer>
<d.NextSeo title="API Keys" />

<d.ApiKeyList
apiKeys={apiKeys}
onDeleteApiKey={onDeleteApiKey}
onDeleteClose={onDeleteClose}
isDeleting={isDeleting}
apiKeyToDelete={apiKeyToDelete}
updateApiKeyToDelete={apiKey => setApiKeyToDelete(apiKey)}
/>
<d.SettingsLayout>
<d.ApiKeyList
apiKeys={apiKeys}
onDeleteApiKey={onDeleteApiKey}
onDeleteClose={onDeleteClose}
isDeleting={isDeleting}
apiKeyToDelete={apiKeyToDelete}
updateApiKeyToDelete={apiKey => setApiKeyToDelete(apiKey)}
/>
</d.SettingsLayout>
</d.Layout>
);
}
Loading