Skip to content

Commit 6e30ea4

Browse files
committed
cleanup more types
1 parent 29f8359 commit 6e30ea4

File tree

14 files changed

+124
-115
lines changed

14 files changed

+124
-115
lines changed

apps/dashboard/app/(main)/settings/page.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -292,12 +292,12 @@ function ApiKeysSection() {
292292
)}
293293
<ApiKeyCreateDialog
294294
onCreated={(res) => setCreatedSecret(res)}
295-
onOpenChange={setOpen}
295+
onOpenChange={(o) => setOpen(o)}
296296
open={open}
297297
/>
298298
<ApiKeyDetailDialog
299299
keyId={selectedId}
300-
onOpenChange={(o) => {
300+
onOpenChangeAction={(o) => {
301301
if (!o) {
302302
setSelectedId(null);
303303
}

apps/dashboard/app/(main)/websites/[id]/flags/_components/flag-actions.tsx

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,17 @@ import {
2929
import { orpc } from "@/lib/orpc";
3030
import type { Flag } from "./types";
3131

32-
interface FlagActionsProps {
32+
type FlagActionsProps = {
3333
flag: Flag;
34-
onEdit: () => void;
35-
onDeleted?: () => void;
36-
}
34+
onEditAction: () => void;
35+
onDeletedAction?: () => void;
36+
};
3737

38-
export function FlagActions({ flag, onEdit, onDeleted }: FlagActionsProps) {
38+
export function FlagActions({
39+
flag,
40+
onEditAction,
41+
onDeletedAction = () => {},
42+
}: FlagActionsProps) {
3943
const [isOpen, setIsOpen] = useState(false);
4044
const [isDeleting, setIsDeleting] = useState(false);
4145

@@ -51,18 +55,22 @@ export function FlagActions({ flag, onEdit, onDeleted }: FlagActionsProps) {
5155

5256
const handleConfirmDelete = async () => {
5357
setIsDeleting(true);
54-
const queryKey = orpc.flags.list.queryOptions({
58+
const queryKey = orpc.flags.list.queryKey({
5559
input: { websiteId: flag.websiteId ?? "" },
56-
}).queryKey;
60+
});
5761
queryClient.setQueryData(queryKey, (oldData: any) =>
5862
oldData?.filter((f: any) => f.id !== flag.id)
5963
);
6064
try {
6165
await deleteMutation.mutateAsync({ id: flag.id });
6266
toast.success("Flag deleted");
63-
onDeleted?.();
67+
onDeletedAction?.();
6468
} catch (_error) {
65-
queryClient.invalidateQueries({ queryKey });
69+
queryClient.invalidateQueries({
70+
queryKey: orpc.flags.list.key({
71+
input: { websiteId: flag.websiteId ?? "" },
72+
}),
73+
});
6674
toast.error("Failed to delete flag");
6775
} finally {
6876
setIsDeleting(false);
@@ -76,7 +84,7 @@ export function FlagActions({ flag, onEdit, onDeleted }: FlagActionsProps) {
7684
<DropdownMenuTrigger asChild>
7785
<Button
7886
aria-label="Open flag actions"
79-
className="focus-visible:ring-2 focus-visible:ring-[var(--color-primary)]"
87+
className="focus-visible:ring-(--color-primary) focus-visible:ring-2"
8088
size="icon"
8189
type="button"
8290
variant="ghost"
@@ -85,7 +93,7 @@ export function FlagActions({ flag, onEdit, onDeleted }: FlagActionsProps) {
8593
</Button>
8694
</DropdownMenuTrigger>
8795
<DropdownMenuContent align="end" className="w-40">
88-
<DropdownMenuItem onClick={onEdit}>
96+
<DropdownMenuItem onClick={onEditAction}>
8997
<PencilIcon className="h-4 w-4" weight="duotone" /> Edit
9098
</DropdownMenuItem>
9199
<DropdownMenuItem onClick={handleCopyKey}>

apps/dashboard/app/(main)/websites/[id]/flags/_components/flag-row.tsx

Lines changed: 19 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,39 +2,36 @@
22

33
import { CaretDownIcon, CaretUpIcon, FlagIcon } from "@phosphor-icons/react";
44
import { useQueryClient } from "@tanstack/react-query";
5-
import { useState } from "react";
65
import { Button } from "@/components/ui/button";
76
import { Card } from "@/components/ui/card";
87
import { orpc } from "@/lib/orpc";
98
import { FlagActions } from "./flag-actions";
109
import type { Flag } from "./types";
1110

12-
interface FlagRowProps {
11+
type FlagRowProps = {
1312
flag: Flag;
14-
onEdit: () => void;
13+
onEditAction: () => void;
1514
isExpanded?: boolean;
16-
onToggle?: (flagId: string) => void;
15+
onToggleAction?: (flagId: string) => void;
1716
children?: React.ReactNode;
18-
}
17+
};
1918

2019
export function FlagRow({
2120
flag,
22-
onEdit,
21+
onEditAction,
2322
isExpanded = false,
24-
onToggle,
23+
onToggleAction,
2524
children,
2625
}: FlagRowProps) {
27-
const [_isArchiving, _setIsArchiving] = useState(false);
28-
2926
const queryClient = useQueryClient();
3027

3128
const handleCardClick = (e: React.MouseEvent<HTMLDivElement>) => {
3229
const target = e.target as HTMLElement;
3330
if (target.closest("button")) {
3431
return;
3532
}
36-
if (onToggle) {
37-
onToggle(flag.id);
33+
if (onToggleAction) {
34+
onToggleAction(flag.id);
3835
}
3936
};
4037

@@ -81,7 +78,7 @@ export function FlagRow({
8178

8279
return (
8380
<Card
84-
className={`mb-4 cursor-pointer select-none overflow-hidden rounded border bg-background transition focus-visible:ring-2 focus-visible:ring-[var(--color-primary)] ${
81+
className={`mb-4 cursor-pointer select-none overflow-hidden rounded border bg-background transition focus-visible:ring-(--color-primary) focus-visible:ring-2 ${
8582
flag.status === "active"
8683
? "border-l-4 border-l-green-500"
8784
: flag.status === "inactive"
@@ -90,15 +87,15 @@ export function FlagRow({
9087
}`}
9188
onClick={handleCardClick}
9289
onKeyDown={(e) => {
93-
if ((e.key === "Enter" || e.key === " ") && onToggle) {
94-
onToggle(flag.id);
90+
if ((e.key === "Enter" || e.key === " ") && onToggleAction) {
91+
onToggleAction(flag.id);
9592
}
9693
}}
9794
style={{ outline: "none" }}
9895
tabIndex={0}
9996
>
10097
<div className="flex items-center justify-between gap-2 px-4 py-3 sm:px-6">
101-
<div className="flex flex-grow flex-col text-left">
98+
<div className="flex grow flex-col text-left">
10299
<div className="mb-1 flex flex-wrap items-center gap-2">
103100
<h3
104101
className="mr-2 truncate font-mono font-semibold text-base"
@@ -143,21 +140,21 @@ export function FlagRow({
143140
<div className="flex items-center gap-2">
144141
<FlagActions
145142
flag={flag}
146-
onDeleted={() => {
143+
onDeletedAction={() => {
147144
queryClient.invalidateQueries({
148-
queryKey: orpc.flags.list.queryOptions({
145+
queryKey: orpc.flags.list.key({
149146
input: { websiteId: flag.websiteId ?? "" },
150-
}).queryKey,
147+
}),
151148
});
152149
}}
153-
onEdit={() => onEdit()}
150+
onEditAction={onEditAction}
154151
/>
155-
{onToggle && (
152+
{onToggleAction && (
156153
<Button
157-
className="focus-visible:ring-2 focus-visible:ring-[var(--color-primary)]"
154+
className="focus-visible:ring-(--color-primary) focus-visible:ring-2"
158155
onClick={(e) => {
159156
e.stopPropagation();
160-
onToggle(flag.id);
157+
onToggleAction(flag.id);
161158
}}
162159
size="icon"
163160
type="button"

apps/dashboard/app/(main)/websites/[id]/flags/_components/flag-sheet.tsx

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -83,16 +83,16 @@ const flagFormSchema = z.object({
8383

8484
type FlagFormData = z.infer<typeof flagFormSchema>;
8585

86-
interface FlagSheetProps {
86+
type FlagSheetProps = {
8787
isOpen: boolean;
88-
onClose: () => void;
88+
onCloseAction: () => void;
8989
websiteId: string;
9090
flag?: Flag | null;
91-
}
91+
};
9292

9393
export function FlagSheet({
9494
isOpen,
95-
onClose,
95+
onCloseAction,
9696
websiteId,
9797
flag,
9898
}: FlagSheetProps) {
@@ -193,10 +193,9 @@ export function FlagSheet({
193193
toast.success(`Flag ${isEditing ? "updated" : "created"} successfully`);
194194

195195
queryClient.invalidateQueries({
196-
queryKey: orpc.flags.list.queryOptions({ input: { websiteId } })
197-
.queryKey,
196+
queryKey: orpc.flags.list.key({ input: { websiteId } }),
198197
});
199-
onClose();
198+
onCloseAction();
200199
} catch (error) {
201200
const errorMessage =
202201
error instanceof Error ? error.message : "Unknown error";
@@ -216,7 +215,7 @@ export function FlagSheet({
216215
const isLoading = createMutation.isPending || updateMutation.isPending;
217216

218217
return (
219-
<Sheet onOpenChange={onClose} open={isOpen}>
218+
<Sheet onOpenChange={onCloseAction} open={isOpen}>
220219
<SheetContent
221220
className="w-full overflow-y-auto p-4 sm:w-[90vw] sm:max-w-[800px] md:w-[70vw] lg:w-[60vw]"
222221
side="right"
@@ -494,7 +493,7 @@ export function FlagSheet({
494493
</div>
495494

496495
<div className="flex justify-end gap-3 border-t pt-6">
497-
<Button onClick={onClose} type="button" variant="outline">
496+
<Button onClick={onCloseAction} type="button" variant="outline">
498497
Cancel
499498
</Button>
500499
<Button disabled={isLoading} type="submit">

apps/dashboard/app/(main)/websites/[id]/flags/_components/flags-list.tsx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,20 +18,20 @@ import {
1818
import { FlagRow } from "./flag-row";
1919
import type { Flag } from "./types";
2020

21-
interface FlagsListProps {
21+
type FlagsListProps = {
2222
flags: Flag[];
2323
isLoading: boolean;
24-
onCreateFlag: () => void;
25-
onEditFlag: (flag: Flag) => void;
26-
}
24+
onCreateFlagAction: () => void;
25+
onEditFlagAction: (flag: Flag) => void;
26+
};
2727

2828
type FlagStatus = "active" | "inactive" | "archived";
2929

3030
export function FlagsList({
3131
flags,
3232
isLoading,
33-
onCreateFlag,
34-
onEditFlag,
33+
onCreateFlagAction,
34+
onEditFlagAction,
3535
}: FlagsListProps) {
3636
const [searchQuery, setSearchQuery] = useState("");
3737
const [statusFilter, setStatusFilter] = useState<FlagStatus | "all">("all");
@@ -63,7 +63,7 @@ export function FlagsList({
6363
<EmptyState
6464
action={{
6565
label: "Create Your First Flag",
66-
onClick: onCreateFlag,
66+
onClick: onCreateFlagAction,
6767
}}
6868
description="Create your first feature flag to start controlling feature rollouts and A/B testing across your application."
6969
icon={
@@ -136,7 +136,7 @@ export function FlagsList({
136136
<FlagRow
137137
flag={flag}
138138
key={flag.id}
139-
onEdit={() => onEditFlag(flag)}
139+
onEditAction={() => onEditFlagAction(flag)}
140140
/>
141141
))}
142142
</div>

apps/dashboard/app/(main)/websites/[id]/flags/page.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -186,8 +186,8 @@ export default function FlagsPage() {
186186
<FlagsList
187187
flags={(flags as any) || []}
188188
isLoading={isLoading}
189-
onCreateFlag={handleCreateFlag}
190-
onEditFlag={handleEditFlag}
189+
onCreateFlagAction={handleCreateFlag}
190+
onEditFlagAction={handleEditFlag}
191191
/>
192192
</Suspense>
193193

@@ -196,7 +196,7 @@ export default function FlagsPage() {
196196
<FlagSheet
197197
flag={editingFlag}
198198
isOpen={isSheetOpen}
199-
onClose={handleSheetClose}
199+
onCloseAction={handleSheetClose}
200200
websiteId={websiteId}
201201
/>
202202
</Suspense>

apps/dashboard/components/organizations/api-key-create-dialog.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -147,16 +147,16 @@ export function ApiKeyCreateDialog({
147147

148148
const createMutation = useMutation({
149149
...orpc.apikeys.create.mutationOptions(),
150-
onSuccess: async (res: {
150+
onSuccess: (res: {
151151
id: string;
152152
secret: string;
153153
prefix: string;
154154
start: string;
155155
}) => {
156156
queryClient.invalidateQueries({
157-
queryKey: orpc.apikeys.list.queryOptions({
157+
queryKey: orpc.apikeys.list.key({
158158
input: { organizationId },
159-
}).queryKey,
159+
}),
160160
});
161161
setCreatedInfo(res);
162162
setShowCreatedDialog(true);

0 commit comments

Comments
 (0)