Skip to content

Commit d4f850a

Browse files
committed
refactor & bug fix
1 parent 22dfe2f commit d4f850a

23 files changed

Lines changed: 310 additions & 843 deletions

src/app/components/DeleteBtn.tsx

Lines changed: 0 additions & 29 deletions
This file was deleted.

src/app/components/cookie/CookieFilter.tsx

Lines changed: 0 additions & 40 deletions
This file was deleted.

src/app/components/cookie/CookieList.tsx

Lines changed: 7 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,12 @@
11
import { useGlobalContext } from "@/context/global-context.tsx"
22
import { CookieData } from "@/types/types.ts"
3-
import { motion } from 'framer-motion'
4-
import { Cookie, PlusCircle } from "lucide-react"
53
import { useEffect, useState, useRef } from 'react'
6-
import CookieFilter, { CookieFilterRef } from './CookieFilter.tsx'
74
import CookieTable from './CookieTable.tsx'
8-
import { Button } from "@/components/ui/button"
5+
import GlobalFilter from "@/app/components/shared/GlobalFilter.tsx";
96

107
export function CookieList() {
118
const { cookies, setCookies } = useGlobalContext()
129
const [filteredCookies, setFilteredCookies] = useState<CookieData[]>(cookies)
13-
const [searchTerm, setSearchTerm] = useState<string>("")
14-
const cookieFilterRef = useRef<CookieFilterRef>(null);
15-
16-
useEffect(() => {
17-
setFilteredCookies(cookies)
18-
}, [cookies])
1910

2011
const handleReorder = (startIndex: number, endIndex: number) => {
2112
const items = Array.from(filteredCookies);
@@ -33,8 +24,8 @@ export function CookieList() {
3324

3425
const updateGlobalCookies = (updatedItems: CookieData[]) => {
3526
const newCookies = cookies.map((cookie: CookieData) => {
36-
const updatedCookie = updatedItems.find(item =>
37-
item.name === cookie.name &&
27+
const updatedCookie = updatedItems.find(item =>
28+
item.name === cookie.name &&
3829
item.domain === cookie.domain &&
3930
item.value === cookie.value
4031
);
@@ -43,32 +34,20 @@ export function CookieList() {
4334
setCookies(newCookies);
4435
};
4536

46-
const handleSearchTermChange = (term: string) => {
47-
setSearchTerm(term);
48-
};
4937

50-
const clearSearchTerm = () => {
51-
if (cookieFilterRef.current) {
52-
cookieFilterRef.current.clearSearch();
53-
}
54-
setSearchTerm("");
55-
};
5638

5739
return (
5840
<div className="space-y-4 h-full flex flex-col">
59-
<CookieFilter
60-
ref={cookieFilterRef}
61-
cookies={cookies}
62-
onFilteredCookiesChange={setFilteredCookies}
63-
onSearchTermChange={handleSearchTermChange}
41+
<GlobalFilter
42+
items={cookies}
43+
setFilteredItems={setFilteredCookies}
44+
type="cookie"
6445
/>
6546

6647
<div className="rounded-md border flex-1 overflow-hidden">
6748
<CookieTable
6849
cookies={filteredCookies}
6950
onReorder={handleReorder}
70-
searchTerm={searchTerm}
71-
clearSearchTerm={clearSearchTerm}
7251
originalDataLength={cookies.length}
7352
/>
7453
</div>

src/app/components/cookie/CookieTable.tsx

Lines changed: 16 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,40 @@
11
import DataTable from "@/app/components/shared/DataTable"
22
import {useGlobalContext} from "@/context/global-context.tsx"
3-
import {useActiveCookies} from "@/hooks/useActiveCookies"
43
import {useApplyCookie} from "@/hooks/useCookie.ts"
54
import {CookieData} from "@/types/types"
65
import {Button} from "@/components/ui/button"
7-
import {Check, CheckCircle2, Copy, FilePen, GripVertical, MoreHorizontal, Trash} from "lucide-react"
8-
import {
9-
DropdownMenu,
10-
DropdownMenuContent,
11-
DropdownMenuItem,
12-
DropdownMenuTrigger
13-
} from "@/components/ui/dropdown-menu"
6+
import {Check, Copy, FilePen, GripVertical, MoreHorizontal, Trash} from "lucide-react"
7+
import {DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger} from "@/components/ui/dropdown-menu"
148
import {ProjectAvatar} from "@/components/ui/project-avatar"
159
import {TableCell, TableHead, TableRow} from "@/components/ui/table"
1610
import toast from "react-hot-toast"
1711

1812
interface CookieTableProps {
1913
cookies: CookieData[];
2014
onReorder?: (startIndex: number, endIndex: number) => void;
21-
searchTerm?: string;
22-
clearSearchTerm?: () => void;
2315
originalDataLength?: number;
2416
}
2517

2618
export default function CookieTable({
27-
cookies,
28-
onReorder,
29-
searchTerm = "",
30-
clearSearchTerm,
31-
originalDataLength = 0
32-
}: CookieTableProps) {
19+
cookies,
20+
onReorder,
21+
originalDataLength
22+
}: CookieTableProps) {
3323
const {handleEdit, handleDeleteProfile} = useGlobalContext()
34-
const {isCookieActive} = useActiveCookies(cookies)
35-
24+
3625
const COLUMN_WIDTHS = {
3726
order: '60px',
3827
alias: '180px',
3928
cookieName: '150px',
4029
project: '140px',
4130
actions: '100px'
4231
}
43-
32+
4433
const handleCopy = (text: string) => {
4534
navigator.clipboard.writeText(text)
4635
toast.success('Value copied')
4736
}
48-
37+
4938
const renderHeaders = () => {
5039
return (
5140
<TableRow>
@@ -57,7 +46,7 @@ export default function CookieTable({
5746
</TableRow>
5847
)
5948
}
60-
49+
6150
const renderCells = (cookie: CookieData, index: number, dragHandleProps: any) => {
6251
return (
6352
<>
@@ -68,9 +57,6 @@ export default function CookieTable({
6857
</TableCell>
6958
<TableCell style={{width: COLUMN_WIDTHS.alias}} className="font-medium">
7059
<div className="flex items-center gap-1.5">
71-
{isCookieActive(cookie.alias) && (
72-
<CheckCircle2 className="h-3.5 w-3.5 text-green-500"/>
73-
)}
7460
{cookie.alias}
7561
</div>
7662
</TableCell>
@@ -96,12 +82,12 @@ export default function CookieTable({
9682
</Button>
9783
</DropdownMenuTrigger>
9884
<DropdownMenuContent align="end">
99-
<DropdownMenuItem onClick={() => handleEdit(cookie)}>
85+
<DropdownMenuItem onClick={() => handleEdit(cookie)} className="cursor-pointer">
10086
<FilePen className="h-3.5 w-3.5 mr-2"/>
10187
Edit
10288
</DropdownMenuItem>
10389
<DropdownMenuItem
104-
className="text-destructive focus:text-destructive"
90+
className="text-destructive focus:text-destructive cursor-pointer"
10591
onClick={() => handleDeleteProfile(cookie)}
10692
>
10793
<Trash className="h-3.5 w-3.5 mr-2"/>
@@ -121,7 +107,7 @@ export default function CookieTable({
121107
<Copy className="h-3.5 w-3.5"/>
122108
</Button>
123109
<Button
124-
className={`h-7 w-7 ${isCookieActive(cookie.alias) ? "bg-green-100 text-green-700 hover:bg-green-200 hover:text-green-800" : ""}`}
110+
className={`h-7 w-7`}
125111
onClick={async (e) => {
126112
await useApplyCookie(cookie)
127113
}}
@@ -136,17 +122,15 @@ export default function CookieTable({
136122
</>
137123
)
138124
}
139-
125+
140126
return (
141-
<DataTable
127+
<DataTable
142128
data={cookies as any}
143129
type="cookie"
144130
onReorder={onReorder}
145131
renderHeaders={renderHeaders}
146132
renderCells={renderCells}
147-
searchTerm={searchTerm}
148-
clearSearchTerm={clearSearchTerm}
149-
originalDataLength={originalDataLength || 0}
133+
originalDataLength={originalDataLength ||0}
150134
/>
151135
)
152136
}

src/app/components/cookie/DropdownItemDeleteCookie.tsx

Lines changed: 0 additions & 22 deletions
This file was deleted.

src/app/components/shared/ConfirmDeleteDialog.tsx

Lines changed: 0 additions & 47 deletions
This file was deleted.

0 commit comments

Comments
 (0)