Skip to content

Commit 734ca99

Browse files
committed
feat: ui - select/clear image
1 parent 56345a7 commit 734ca99

File tree

3 files changed

+28
-21
lines changed

3 files changed

+28
-21
lines changed

apps/web/@/molecules/upload/AssetsManagement.tsx

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -23,20 +23,6 @@ const AssetManagement = () => {
2323
fetchImages()
2424
}, [])
2525

26-
const handleSelect = (id: string) => {
27-
// Handle image selection
28-
console.log("Selected image:", id)
29-
}
30-
31-
const handleDelete = async (id: string) => {
32-
try {
33-
await fetch(`/api/images/${id}`, { method: "DELETE" })
34-
setImages(images.filter((image) => image.id !== id))
35-
} catch (error) {
36-
console.error("Error deleting image:", error)
37-
}
38-
}
39-
4026
return (
4127
<div className="py-4">
4228
<div className="flex gap-4 p-1">

apps/web/@/molecules/upload/index.tsx

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { ReactNode } from "react"
22

33
import { Image } from "database"
4+
import { X } from "lucide-react"
45
import { useTranslations } from "next-intl"
56
import {
67
Button,
@@ -34,19 +35,26 @@ const SelectButton: React.FC<SelectButtonProps> = ({ onSelect }) => {
3435
onSelect(selectedFiles?.at(0) || null)
3536
}
3637

37-
return <Button onClick={handleSelect}>{t("select")}</Button>
38+
return (
39+
<Button
40+
onClick={handleSelect}
41+
disabled={!selectedFiles || selectedFiles?.length === 0}
42+
>
43+
{t("select")}
44+
</Button>
45+
)
3846
}
3947

4048
const SelectedFiles: React.FC = () => {
4149
const t = useTranslations("uploads")
4250

43-
const { selectedFiles } = useFileManager()
51+
const { selectedFiles, setSelectedFiles } = useFileManager()
4452

45-
if (!selectedFiles || selectedFiles.length === 0) return null
53+
if (!selectedFiles || selectedFiles.length === 0) return <div className="flex flex-1" />
4654

4755
if (selectedFiles.length === 1) {
4856
return (
49-
<div className="flex h-full items-center justify-center">
57+
<div className="flex h-full flex-1 items-center justify-start">
5058
<Typography
5159
variant="span"
5260
className="max-w-[100px] truncate text-sm font-semibold"
@@ -59,6 +67,20 @@ const SelectedFiles: React.FC = () => {
5967
>
6068
{t("has_been_selected")}
6169
</Typography>
70+
71+
<Button
72+
size="icon"
73+
variant="ghost"
74+
className="ml-2"
75+
onClick={() => {
76+
setSelectedFiles([])
77+
}}
78+
>
79+
<X
80+
size={16}
81+
color="red"
82+
/>
83+
</Button>
6284
</div>
6385
)
6486
}
@@ -85,7 +107,6 @@ const Upload: React.FC<UploadProps> = ({ children, onSelect }) => {
85107

86108
<DialogFooter className="mt-0 flex flex-row items-center justify-between border-t px-4 py-2">
87109
<SelectedFiles />
88-
89110
<SelectButton onSelect={onSelect} />
90111
</DialogFooter>
91112
</DialogContent>

apps/web/app/[lang]/(protected)/user/posts/page.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,10 @@ export default async function Page({ searchParams }) {
3232
<Filter total={total} />
3333

3434
<div className="mt-12">
35-
{data?.length === 0 ? (
35+
{data?.data?.length === 0 ? (
3636
<NoItemFounded />
3737
) : (
38-
data?.map((post) => (
38+
data?.data?.map((post) => (
3939
<PostItem
4040
key={post.id}
4141
{...post}

0 commit comments

Comments
 (0)