import { useState } from 'react'; import { Button, Input, Skeleton, SearchInput, ConfirmDialog } from '@/components'; import { SecretRow } from '../components/SecretRow'; import SecretEmptyState from '../components/SecretEmptyState'; import { useSecrets } from '@/features/functions/hooks/useSecrets'; export default function SecretsPage() { const [newSecretKey, setNewSecretKey] = useState(''); const [newSecretValue, setNewSecretValue] = useState(''); const { filteredSecrets, searchQuery, setSearchQuery, isLoading: loading, createSecret, deleteSecret, confirmDialogProps, } = useSecrets(); const handleSaveNewSecret = async () => { const success = await createSecret(newSecretKey, newSecretValue); if (success) { setNewSecretKey(''); setNewSecretValue(''); } }; return (
{/* Header */}

Secrets

{/* Add New Secret Portal */}

Add New Secret

setNewSecretKey(e.target.value)} className="shadow-none w-full dark:bg-neutral-900 dark:text-white dark:placeholder:text-neutral-400 dark:border-neutral-700" />
setNewSecretValue(e.target.value)} className="shadow-none w-full dark:bg-neutral-900 dark:text-white dark:placeholder:text-neutral-400 dark:border-neutral-700" />
{/* Search Bar */} {/* Secrets Table */}
{/* Table Header */}
Name
{/*
Digest
*/}
Updated at
{loading ? ( <> {[...Array(4)].map((_, i) => ( ))} ) : filteredSecrets.length >= 1 ? ( <> {filteredSecrets.map((secret) => ( void deleteSecret(secret)} className="cols-span-full" /> ))} ) : (
)}
); }