feat : update image

Deskripsi:
- update image calender
- update image discussion
- update image division
- update image project
- update image task
- update image user
- update api image

No Issue
This commit is contained in:
lukman
2024-09-02 15:39:15 +08:00
parent cbd999678d
commit 71451229c2
28 changed files with 92 additions and 66 deletions

View File

@@ -37,6 +37,7 @@ export interface IDataDetailByIdMember {
idUser: string
name: string
email: string
img: string
}
export interface IFormCreateCalender {
@@ -56,6 +57,7 @@ export interface IFormMemberCalender {
idUser: {
id: string
name: string
img: string
}[]
}

View File

@@ -49,7 +49,7 @@ export default function CreateUserCalender({ onClose }: { onClose: (val: any) =>
if (selectedFiles.some((i: any) => i.idUser == isData[index].idUser)) {
setSelectedFiles(selectedFiles.filter((i: any) => i.idUser != isData[index].idUser))
} else {
setSelectedFiles([...selectedFiles, { idUser: isData[index].idUser, name: isData[index].name }])
setSelectedFiles([...selectedFiles, { idUser: isData[index].idUser, name: isData[index].name, img: isData[index].img }])
}
};
@@ -61,7 +61,7 @@ export default function CreateUserCalender({ onClose }: { onClose: (val: any) =>
for (let index = 0; index < isData.length; index++) {
if (!selectedFiles.some((i: any) => i.idUser == isData[index].idUser)) {
const newArr = {
idUser: isData[index].idUser, name: isData[index].name
idUser: isData[index].idUser, name: isData[index].name, img: isData[index].img
}
setSelectedFiles((selectedFiles: any) => [...selectedFiles, newArr])
}
@@ -111,7 +111,7 @@ export default function CreateUserCalender({ onClose }: { onClose: (val: any) =>
<Box mb={15} key={i} onClick={() => handleFileClick(i)}>
<Flex justify={"space-between"} align={"center"}>
<Group>
<Avatar src={"v.image"} alt="it's me" size="lg" />
<Avatar src={`/api/file/img?cat=user&file=${v.img}`} alt="it's me" size="lg" />
<Text style={{
cursor: 'pointer',
display: 'flex',

View File

@@ -172,7 +172,7 @@ export default function DetailEventDivision() {
key={i}
>
<Group>
<Avatar src={""} alt="it's me" size="lg" />
<Avatar src={`/api/file/img?cat=user&file=${v.img}`} alt="it's me" size="lg" />
<Box>
<Text c={WARNA.biruTua} fw={"bold"}>
{v.name}

View File

@@ -18,8 +18,8 @@ export default function NavbarCreateDivisionCalender() {
const [value, setValue] = useState<Date | null>(null);
const router = useRouter()
const [isModal, setModal] = useState(false)
const memberUser = useHookstate(globalCalender)
const memberValue = memberUser.get() as IFormMemberCalender[]
const member = useHookstate(globalCalender)
const memberValue = member.get() as IFormMemberCalender[]
const [openMember, setOpenMember] = useState(false)
const param = useParams<{ id: string, detail: string }>()
const [touched, setTouched] = useState({
@@ -63,7 +63,7 @@ export default function NavbarCreateDivisionCalender() {
setModal(false)
router.push(`/division/${param.id}/calender`)
toast.success(response.message)
memberUser.set([])
member.set([])
} else {
toast.error(response.message)
setModal(false)
@@ -244,11 +244,11 @@ export default function NavbarCreateDivisionCalender() {
</Group>
</Box>
{
memberUser.length > 0 &&
member.length > 0 &&
<Box pt={30} mb={60}>
<Group justify="space-between">
<Text c={WARNA.biruTua}>Anggota Terpilih</Text>
<Text c={WARNA.biruTua}>Total {memberUser.length} Anggota</Text>
<Text c={WARNA.biruTua}>Total {member.length} Anggota</Text>
</Group>
<Box pt={10}>
<Box mb={20}>
@@ -260,28 +260,34 @@ export default function NavbarCreateDivisionCalender() {
px={20}
py={10}
>
{memberUser.get().map((v: any, i: any) => {
return (
<Flex
justify={"space-between"}
align={"center"}
mt={20}
key={i}
>
<Group>
<Avatar src={"v.image"} alt="it's me" size="lg" />
<Box>
<Text c={WARNA.biruTua} fw={"bold"}>
{v.name}
</Text>
</Box>
</Group>
<Text c={WARNA.biruTua} fw={"bold"}>
Anggota
</Text>
</Flex>
);
})}
{member.length == 0 ?
<Box style={{ display: 'flex', justifyContent: 'center', alignItems: 'center', height: '10vh' }}>
<Text c="dimmed" ta={"center"} fs={"italic"}>Tidak ada Anggota</Text>
</Box>
:
member.get().map((v: any, i: any) => {
return (
<Flex
justify={"space-between"}
align={"center"}
mt={20}
key={i}
>
<Group>
<Avatar src={`/api/file/img?cat=user&file=${v.img}`} alt="it's me" size="lg" />
<Box>
<Text c={WARNA.biruTua} fw={"bold"}>
{v.name}
</Text>
</Box>
</Group>
<Text c={WARNA.biruTua} fw={"bold"}>
Anggota
</Text>
</Flex>
);
})}
</Box>
</Box>
</Box>

View File

@@ -339,7 +339,7 @@ export default function UpdateDivisionCalender() {
key={i}
>
<Group>
<Avatar src={"v.image"} alt="it's me" size="lg" />
<Avatar src={`/api/file/img?cat=user&file=${v.img}`} alt="it's me" size="lg" />
<Box>
<Text c={WARNA.biruTua} fw={"bold"}>
{v.name}

View File

@@ -145,7 +145,7 @@ export default function UpdateListUsers({ onClose }: { onClose: (val: any) => vo
<Box mb={15} key={i} onClick={() => handleFileClick(i)}>
<Flex justify={"space-between"} align={"center"}>
<Group>
<Avatar src={"v.image"} alt="it's me" size="lg" />
<Avatar src={`/api/file/img?cat=user&file=${v.img}`} alt="it's me" size="lg" />
<Text style={{
cursor: 'pointer',
display: 'flex',

View File

@@ -2,6 +2,7 @@ export interface IDataDiscussion {
id: string
title: string
desc: string
img: string
status: number
createdAt: string
user_name: string
@@ -26,6 +27,7 @@ export interface IDetailDiscussion {
createdAt: string
DivisionDisscussionComment: IAllComents[]
username: string
user_img: string
totalComments: number
}
@@ -33,7 +35,8 @@ export interface IDetailDiscussion {
id: string
comment: string
createdAt: string
User: User
User: User
img: string
username: string
}

View File

@@ -103,7 +103,7 @@ export default function DetailDiscussion({ id, idDivision }: { id: string, idDiv
>
{isData?.username ?
<Group>
<Avatar src={'https://i.pravatar.cc/1000?img=5'} alt="it's me" size="lg" />
<Avatar src={`/api/file/img?cat=user&file=${isData?.user_img}`} alt="it's me" size="lg" />
<Box>
<Text c={WARNA.biruTua} fw={"bold"}>
{isData?.username}
@@ -142,7 +142,7 @@ export default function DetailDiscussion({ id, idDivision }: { id: string, idDiv
>
{isData?.username ?
<Group>
<Avatar src={'https://i.pravatar.cc/1000?img=5'} alt="it's me" size="lg" />
<Avatar src={`/api/file/img?cat=user&file=${isData?.user_img}`} alt="it's me" size="lg" />
<Box>
<Text c={WARNA.biruTua} fw={"bold"}>
{isData?.username}
@@ -216,7 +216,7 @@ export default function DetailDiscussion({ id, idDivision }: { id: string, idDiv
align={"center"}
>
<Group>
<Avatar alt="it's me" size="md" />
<Avatar alt="it's me" size="md" src={`/api/file/img?cat=user&file=${v.img}`} />
<Box>
<Text c={WARNA.biruTua} fw={"bold"} fz={15}>
{v.username}

View File

@@ -110,7 +110,7 @@ export default function ListDiscussion({ id }: { id: string }) {
}}
>
<Group>
<Avatar alt="it's me" size="lg" />
<Avatar alt="it's me" src={`/api/file/img?cat=user&file=${v.img}`} size="lg" />
<Box>
<Text c={WARNA.biruTua} fw={"bold"}>
{v.user_name}

View File

@@ -112,7 +112,7 @@ export default function CreateAnggotaDivision() {
</Box>
))
:
<Box mt={20} mb={60}>
<Box mt={20} mb={100}>
{dataMember.map((v: any, index: any) => {
const isSelected = selectedFiles.some((i: any) => i.idUser == dataMember[index].id)
const found = memberDb.some((i: any) => i.idUser == v.id)
@@ -120,7 +120,7 @@ export default function CreateAnggotaDivision() {
<Box my={10} key={index} onClick={() => (!found) ? handleFileClick(index) : null}>
<Group justify='space-between' align='center'>
<Group>
<Avatar src={"v.img"} alt="it's me" size="lg" />
<Avatar src={`/api/file/img?cat=user&file=${v.img}`} alt="it's me" size="lg" />
<Stack align="flex-start" justify="flex-start">
<Text>{v.name}</Text>
<Text c={"dimmed"}>{(found) ? "sudah menjadi anggota divisi" : ""}</Text>

View File

@@ -191,7 +191,7 @@ export default function InformationDivision() {
onClick={() => { onClickMember(v.id, (v.isAdmin) ? true : false), setChooseMemberName(v.name) }}
>
<Group>
<Avatar src={"v.img"} alt="it's me" size="lg" />
<Avatar src={`/api/file/img?cat=user&file=${v.img}`} alt="it's me" size="lg" />
<Box>
<Text c={WARNA.biruTua} fw={"bold"}>
{v.name}

View File

@@ -89,7 +89,7 @@ export default function NavbarCreateUsers({ grup, onClose }: { grup?: string, on
.fill(null)
.map((_, i) => (
<Box key={i}>
<Skeleton width={"100%"} height={100} radius={"md"} />
<Skeleton width={"100%"} height={130} radius={"md"} />
</Box>
))}
</SimpleGrid>
@@ -114,7 +114,7 @@ export default function NavbarCreateUsers({ grup, onClose }: { grup?: string, on
onClick={() => handleFileClick(index)}
>
<Center>
<Avatar src={"https://i.pravatar.cc/1000?img=37"} alt="it's me" size="xl" />
<Avatar src={`/api/file/img?cat=user&file=${v.img}`} alt="it's me" size="xl" />
</Center>
<Text mt={20} ta="center">
{v.name}

View File

@@ -26,6 +26,7 @@ export interface IDataMemberProject {
idUser: string
name: string
email: string
img: string
}
export interface IFormProject {
@@ -44,7 +45,8 @@ export interface IFormDateProject {
export interface IFormMemberProject {
idUser: string,
name: string
name: string,
img: string
}
@@ -63,7 +65,8 @@ export interface IDataMemberProjectDetail {
id: string,
idUser: string,
isLeader: string,
name: string
name: string,
img: string
}
export interface IListFileTaskProject {

View File

@@ -133,7 +133,7 @@ export default function AddMemberDetailProject() {
<Box mb={15} key={i} onClick={() => (!found) ? handleFileClick(i) : null}>
<Flex justify={"space-between"} align={"center"}>
<Group>
<Avatar src={"v.image"} alt="it's me" size="lg" />
<Avatar src={`/api/file/img?cat=user&file=${v.img}`} alt="it's me" size="lg" />
<Stack align="flex-start" justify="flex-start">
<Text style={{
cursor: 'pointer',

View File

@@ -78,7 +78,7 @@ export default function ViewDateEndTask({ onClose }: { onClose: (val: IFormDateP
</Group>
</Box>
<Box>
<Text c={WARNA.biruTua}>Tanggal Berakhir</Text>
<Text>Tanggal Berakhir</Text>
<Group
justify="center"
bg={"white"}
@@ -89,7 +89,7 @@ export default function ViewDateEndTask({ onClose }: { onClose: (val: IFormDateP
</Group>
</Box>
</SimpleGrid>
<Stack pt={15}>
<Stack pt={15} pb={100}>
<TextInput
styles={{
input: {

View File

@@ -289,7 +289,7 @@ export default function CreateProject() {
key={i}
>
<Group>
<Avatar src={"v.image"} alt="it's me" size="lg" />
<Avatar src={`/api/file/img?cat=user&file=${v.img}`} alt="it's me" size="lg" />
<Box>
<Text c={WARNA.biruTua} fw={"bold"}>
{v.name}

View File

@@ -24,7 +24,7 @@ export default function CreateUsersProject({ grup, onClose }: { grup?: string, o
if (selectedFiles.some((i: any) => i.idUser == dataMember[index].id)) {
setSelectedFiles(selectedFiles.filter((i: any) => i.idUser != dataMember[index].id))
} else {
setSelectedFiles([...selectedFiles, { idUser: dataMember[index].id, name: dataMember[index].name }])
setSelectedFiles([...selectedFiles, { idUser: dataMember[index].id, name: dataMember[index].name, img: dataMember[index].img }])
}
};
@@ -114,7 +114,7 @@ export default function CreateUsersProject({ grup, onClose }: { grup?: string, o
onClick={() => handleFileClick(index)}
>
<Center>
<Avatar src={"https://i.pravatar.cc/1000?img=37"} alt="it's me" size="xl" />
<Avatar src={`/api/file/img?cat=user&file=${v.img}`} alt="it's me" size="xl" />
</Center>
<Text mt={20} ta="center">
{v.name}

View File

@@ -100,7 +100,7 @@ export default function ListAnggotaDetailProject() {
}}
>
<Group>
<Avatar src={""} alt="it's me" size="lg" />
<Avatar src={`/api/file/img?cat=user&file=${v.img}`} alt="it's me" size="lg" />
<Box>
<Text c={WARNA.biruTua} fw={"bold"}>
{v.name}

View File

@@ -60,6 +60,7 @@ export interface IDataMemberTaskDivision {
idUser: string
name: string
email: string
img: string
}
export interface IDataFileTaskDivision {

View File

@@ -150,7 +150,7 @@ export default function AddMemberDetailTask() {
<Box mb={15} key={i} onClick={() => (!found) ? handleFileClick(i) : null}>
<Flex justify={"space-between"} align={"center"}>
<Group>
<Avatar src={"v.image"} alt="it's me" size="lg" />
<Avatar src={`/api/file/img?cat=user&file=${v.img}`} alt="it's me" size="lg" />
<Stack align="flex-start" justify="flex-start">
<Text style={{
cursor: 'pointer',

View File

@@ -102,7 +102,7 @@ export default function ListAnggotaDetailTask() {
}}
>
<Group>
<Avatar src={""} alt="it's me" size="lg" />
<Avatar src={`/api/file/img?cat=user&file=${v.img}`} alt="it's me" size="lg" />
<Box>
<Text c={WARNA.biruTua} fw={"bold"}>
{v.name}

View File

@@ -7,5 +7,6 @@ export type TypeUser = {
gender: string
isActive: boolean,
group: string,
img: string
position: string
}[]