diff --git a/app/(app)/contacts/contacts-client.tsx b/app/(app)/contacts/contacts-client.tsx
index b8b0926..82fafe0 100644
--- a/app/(app)/contacts/contacts-client.tsx
+++ b/app/(app)/contacts/contacts-client.tsx
@@ -4,6 +4,7 @@ import { useState } from 'react'
import { Plus, X, Pencil, Contact as ContactIcon } from 'lucide-react'
import { createContact, updateContact, deleteContact } from '@/lib/actions'
import { useConfirm } from '@/components/ui/confirm'
+import { Dialog, DialogContent, DialogHeader, DialogTitle } from '@/components/ui/dialog'
import type { Tables } from '@/types/database'
import { PageTitle } from '@/components/ui/page-title'
import { Empty, EmptyHeader, EmptyMedia, EmptyTitle, EmptyContent } from '@/components/ui/empty'
@@ -259,29 +260,23 @@ export function ContactsClient({ contacts: initialContacts }: { contacts: Contac
)}
- {showCreate && (
-
-
-
-
Add Member
-
+
-
- )}
+
+
+
{/* Edit Member Modal */}
- {editMember && (
-
-
-
-
Edit {editMember.display_name}
-
+
-
- )}
+
+
+
)
}
diff --git a/app/(app)/ops/ops-client.tsx b/app/(app)/ops/ops-client.tsx
index c8ca5c9..6254b16 100644
--- a/app/(app)/ops/ops-client.tsx
+++ b/app/(app)/ops/ops-client.tsx
@@ -2,7 +2,7 @@
import { useState, useMemo } from 'react'
import { useRouter } from 'next/navigation'
-import { Plus, Search, Lock, Pin, Eye, EyeOff, Pencil, Trash2, X, ChevronDown, Users2, FileText } from 'lucide-react'
+import { Plus, Search, Lock, Pin, Eye, EyeOff, Pencil, Trash2, ChevronDown, Users2, FileText } from 'lucide-react'
import ReactMarkdown from 'react-markdown'
import remarkGfm from 'remark-gfm'
import { createKbEntry, updateKbEntry, deleteKbEntry } from '@/lib/actions'
@@ -12,6 +12,7 @@ import { createClient } from '@/lib/supabase/client'
import { toast } from 'sonner'
import type { Tables, TablesInsert } from '@/types/database'
import { PageTitle } from '@/components/ui/page-title'
+import { Dialog, DialogContent, DialogHeader, DialogTitle } from '@/components/ui/dialog'
import { useConfirm } from '@/components/ui/confirm'
import { Empty, EmptyHeader, EmptyMedia, EmptyTitle, EmptyContent } from '@/components/ui/empty'
@@ -94,13 +95,12 @@ function KbModal({
}
return (
-
-
e.stopPropagation()}>
-
-
{isEdit ? 'Edit Entry' : 'New KB Entry'}
-
-
-
-
+
+
)
}
@@ -222,13 +222,12 @@ function AddSecretModal({
}
return (
-
-
e.stopPropagation()}>
-
-
Add Secret / Credential
-
-
-
-
+
+
)
}
@@ -317,13 +316,12 @@ function AreaLeadModal({
}
return (
-
-
e.stopPropagation()}>
-
-
{isEdit ? 'Edit Area Lead' : 'Add Area Lead'}
-
-
-
+
-
+
+
)
}
@@ -507,17 +505,14 @@ function KbEntryRow({
- {viewing && (
- setViewing(false)}>
-
e.stopPropagation()}
- className="bg-card rounded border border-border w-full max-w-3xl max-h-[90vh] overflow-y-auto"
- >
-
+
)
}
diff --git a/app/(app)/settings/settings-client.tsx b/app/(app)/settings/settings-client.tsx
index 2f8dffb..c91ddc6 100644
--- a/app/(app)/settings/settings-client.tsx
+++ b/app/(app)/settings/settings-client.tsx
@@ -1,13 +1,14 @@
'use client'
import { useState } from 'react'
-import { X, Check, Copy, Eye, EyeOff, RotateCcw } from 'lucide-react'
+import { Check, Copy, Eye, EyeOff, RotateCcw } from 'lucide-react'
import { updateSpaceSettings, saveIntegration, disconnectIntegration, rotateWebhookSecret, updateSpaceVisibility, createArea, updateArea, deleteArea, createTier, updateTier, deleteTier, createInvite, updateInvite, deleteInvite, createOnboardingStep, updateOnboardingStep, deleteOnboardingStep } from '@/lib/actions'
import { toast } from 'sonner'
import { financialVisibilities, directoryVisibilities } from '@/lib/validations'
import type { Tables } from '@/types/database'
import { PageTitle } from '@/components/ui/page-title'
+import { Dialog, DialogContent, DialogHeader, DialogTitle } from '@/components/ui/dialog'
type Space = Tables<'spaces'>
type Integration = Tables<'integrations'>
@@ -567,20 +568,18 @@ export default function SettingsClient({ space, isAdmin, integrations, currentRo
{/* Integration Config Modal */}
- {editingIntegration && (
-
-
-
-
-
{editingIntegration.icon}
-
{editingIntegration.name}
-
-
-
+
{ if (!o) setEditingIntegration(null) }}>
+
+ {editingIntegration && (
+ <>
+
+
+ {editingIntegration.icon}
+ {editingIntegration.name}
+
+
-
+
{editingIntegration.fields.map(field => (
@@ -656,9 +655,10 @@ export default function SettingsClient({ space, isAdmin, integrations, currentRo
-
-
- )}
+ >
+ )}
+
+
)
}
diff --git a/app/(app)/tasks/tasks-client.tsx b/app/(app)/tasks/tasks-client.tsx
index 1042a48..edac896 100644
--- a/app/(app)/tasks/tasks-client.tsx
+++ b/app/(app)/tasks/tasks-client.tsx
@@ -7,6 +7,7 @@ import { toast } from 'sonner'
import type { Tables } from '@/types/database'
import { PageTitle } from '@/components/ui/page-title'
import { Empty, EmptyHeader, EmptyMedia, EmptyTitle, EmptyContent } from '@/components/ui/empty'
+import { Dialog, DialogContent, DialogHeader, DialogTitle } from '@/components/ui/dialog'
type Task = Tables<'tasks'>
@@ -244,17 +245,13 @@ export function TasksClient({ tasks: initialTasks, members, currentUserId, space
{/* Create Task Modal */}
- {showCreate && (
-