style : update style
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
'use client'
|
'use client'
|
||||||
import { TEMA} from "@/module/_global";
|
import { TEMA } from "@/module/_global";
|
||||||
import { Avatar, Badge, Box, Divider, Flex, Grid, Group, Skeleton, Spoiler, Text, TextInput } from "@mantine/core";
|
import { Avatar, Badge, Box, Divider, Flex, Grid, Group, Skeleton, Spoiler, Text, TextInput } from "@mantine/core";
|
||||||
import { useParams, useRouter, useSearchParams } from "next/navigation";
|
import { useParams, useRouter, useSearchParams } from "next/navigation";
|
||||||
import { useState } from "react";
|
import { useState } from "react";
|
||||||
@@ -106,15 +106,30 @@ export default function ListDiscussion({ id }: { id: string }) {
|
|||||||
<Grid align="center" mt={20} onClick={() => {
|
<Grid align="center" mt={20} onClick={() => {
|
||||||
router.push(`/division/${param.id}/discussion/${v.id}`)
|
router.push(`/division/${param.id}/discussion/${v.id}`)
|
||||||
}}>
|
}}>
|
||||||
<Grid.Col span={2}>
|
<Grid.Col span={{
|
||||||
|
sm: 2,
|
||||||
|
lg: 2,
|
||||||
|
xl: 2,
|
||||||
|
md: 2,
|
||||||
|
xs: 1,
|
||||||
|
base: 2
|
||||||
|
}}>
|
||||||
<Avatar alt="it's me" src={`https://wibu-storage.wibudev.com/api/files/${v.img}`} size="lg" />
|
<Avatar alt="it's me" src={`https://wibu-storage.wibudev.com/api/files/${v.img}`} size="lg" />
|
||||||
</Grid.Col>
|
</Grid.Col>
|
||||||
<Grid.Col span={6}>
|
<Grid.Col span={{
|
||||||
|
sm: 6,
|
||||||
|
lg: 6,
|
||||||
|
xl: 6,
|
||||||
|
md: 6,
|
||||||
|
xs: 7,
|
||||||
|
base: 6
|
||||||
|
}}>
|
||||||
<Box pl={{
|
<Box pl={{
|
||||||
sm: 0,
|
sm: 0,
|
||||||
lg: 0,
|
lg: 0,
|
||||||
xl: 0,
|
xl: 0,
|
||||||
md: 0,
|
md: 0,
|
||||||
|
xs: 40,
|
||||||
base: 10
|
base: 10
|
||||||
}}>
|
}}>
|
||||||
<Text c={tema.get().utama} fw={"bold"} lineClamp={1}>
|
<Text c={tema.get().utama} fw={"bold"} lineClamp={1}>
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ export default function FeatureDetailDivision() {
|
|||||||
fetchData()
|
fetchData()
|
||||||
}, [param.id])
|
}, [param.id])
|
||||||
const isMobile = useMediaQuery('(max-width: 399px)');
|
const isMobile = useMediaQuery('(max-width: 399px)');
|
||||||
const isMobile2 = useMediaQuery('(max-width: 369px)');
|
const isMobile2 = useMediaQuery('(max-width: 411px)');
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Box pt={10}>
|
<Box pt={10}>
|
||||||
@@ -58,7 +58,12 @@ export default function FeatureDetailDivision() {
|
|||||||
padding: 10
|
padding: 10
|
||||||
}} onClick={() => router.push(param.id + '/task?status=0')}>
|
}} onClick={() => router.push(param.id + '/task?status=0')}>
|
||||||
<Grid justify='center' align='center'>
|
<Grid justify='center' align='center'>
|
||||||
<Grid.Col span={"auto"}>
|
<Grid.Col span={{
|
||||||
|
base: isMobile2 ? 4 : 3.5,
|
||||||
|
xs: 3,
|
||||||
|
sm: 3,
|
||||||
|
md: 3,
|
||||||
|
}}>
|
||||||
<ActionIcon variant="filled"
|
<ActionIcon variant="filled"
|
||||||
size={isMobile2 ? "lg" : "xl"}
|
size={isMobile2 ? "lg" : "xl"}
|
||||||
aria-label="Gradient action icon"
|
aria-label="Gradient action icon"
|
||||||
@@ -68,7 +73,13 @@ export default function FeatureDetailDivision() {
|
|||||||
<LuClipboardEdit size={isMobile2 ? 20 : 25} color={tema.get().utama} />
|
<LuClipboardEdit size={isMobile2 ? 20 : 25} color={tema.get().utama} />
|
||||||
</ActionIcon>
|
</ActionIcon>
|
||||||
</Grid.Col>
|
</Grid.Col>
|
||||||
<Grid.Col span={{ base: 7, md: 9 }}>
|
<Grid.Col
|
||||||
|
span={{
|
||||||
|
base: isMobile2 ? 8 : 7.5,
|
||||||
|
xs: 9,
|
||||||
|
md: 9,
|
||||||
|
sm: 9,
|
||||||
|
}}>
|
||||||
<Text fz={15} c={tema.get().utama} fw={"bold"}>Tugas</Text>
|
<Text fz={15} c={tema.get().utama} fw={"bold"}>Tugas</Text>
|
||||||
<Group justify='space-between' align='center'>
|
<Group justify='space-between' align='center'>
|
||||||
<Text fz={10} c={"gray"}>{feature?.tugas} Tugas</Text>
|
<Text fz={10} c={"gray"}>{feature?.tugas} Tugas</Text>
|
||||||
@@ -83,7 +94,12 @@ export default function FeatureDetailDivision() {
|
|||||||
padding: 10
|
padding: 10
|
||||||
}} onClick={() => router.push(param.id + '/document')}>
|
}} onClick={() => router.push(param.id + '/document')}>
|
||||||
<Grid justify='center' align='center'>
|
<Grid justify='center' align='center'>
|
||||||
<Grid.Col span={"auto"}>
|
<Grid.Col span={{
|
||||||
|
base: isMobile2 ? 4 : 3.5,
|
||||||
|
xs: 3,
|
||||||
|
sm: 3,
|
||||||
|
md: 3,
|
||||||
|
}}>
|
||||||
<ActionIcon variant="filled"
|
<ActionIcon variant="filled"
|
||||||
size={isMobile2 ? "lg" : "xl"}
|
size={isMobile2 ? "lg" : "xl"}
|
||||||
aria-label="Gradient action icon"
|
aria-label="Gradient action icon"
|
||||||
@@ -93,7 +109,12 @@ export default function FeatureDetailDivision() {
|
|||||||
<BsFileEarmarkText size={isMobile2 ? 20 : 25} color={tema.get().utama} />
|
<BsFileEarmarkText size={isMobile2 ? 20 : 25} color={tema.get().utama} />
|
||||||
</ActionIcon>
|
</ActionIcon>
|
||||||
</Grid.Col>
|
</Grid.Col>
|
||||||
<Grid.Col span={{ base: 7, md: 9 }}>
|
<Grid.Col span={{
|
||||||
|
base: isMobile2 ? 8 : 7.5,
|
||||||
|
xs: 9,
|
||||||
|
md: 9,
|
||||||
|
sm: 9,
|
||||||
|
}}>
|
||||||
<Text fz={15} c={tema.get().utama} fw={"bold"}>Dokumen</Text>
|
<Text fz={15} c={tema.get().utama} fw={"bold"}>Dokumen</Text>
|
||||||
<Group justify='space-between' align='center'>
|
<Group justify='space-between' align='center'>
|
||||||
<Text fz={10} c={"gray"}>{feature?.dokumen} File</Text>
|
<Text fz={10} c={"gray"}>{feature?.dokumen} File</Text>
|
||||||
@@ -108,7 +129,12 @@ export default function FeatureDetailDivision() {
|
|||||||
padding: 10
|
padding: 10
|
||||||
}} onClick={() => router.push(param.id + '/discussion')}>
|
}} onClick={() => router.push(param.id + '/discussion')}>
|
||||||
<Grid justify='center' align='center'>
|
<Grid justify='center' align='center'>
|
||||||
<Grid.Col span={"auto"}>
|
<Grid.Col span={{
|
||||||
|
base: isMobile2 ? 4 : 3.5,
|
||||||
|
xs: 3,
|
||||||
|
sm: 3,
|
||||||
|
md: 3,
|
||||||
|
}}>
|
||||||
<ActionIcon variant="filled"
|
<ActionIcon variant="filled"
|
||||||
size={isMobile2 ? "lg" : "xl"}
|
size={isMobile2 ? "lg" : "xl"}
|
||||||
aria-label="Gradient action icon"
|
aria-label="Gradient action icon"
|
||||||
@@ -118,7 +144,12 @@ export default function FeatureDetailDivision() {
|
|||||||
<GoCommentDiscussion size={isMobile2 ? 20 : 25} color={tema.get().utama} />
|
<GoCommentDiscussion size={isMobile2 ? 20 : 25} color={tema.get().utama} />
|
||||||
</ActionIcon>
|
</ActionIcon>
|
||||||
</Grid.Col>
|
</Grid.Col>
|
||||||
<Grid.Col span={{ base: 7, md: 9 }}>
|
<Grid.Col span={{
|
||||||
|
base: isMobile2 ? 8 : 7.5,
|
||||||
|
xs: 9,
|
||||||
|
md: 9,
|
||||||
|
sm: 9,
|
||||||
|
}}>
|
||||||
<Text fz={15} c={tema.get().utama} fw={"bold"}>Diskusi</Text>
|
<Text fz={15} c={tema.get().utama} fw={"bold"}>Diskusi</Text>
|
||||||
<Group justify='space-between' align='center'>
|
<Group justify='space-between' align='center'>
|
||||||
<Text fz={10} c={"gray"}>{feature?.diskusi} Diskusi</Text>
|
<Text fz={10} c={"gray"}>{feature?.diskusi} Diskusi</Text>
|
||||||
@@ -133,7 +164,12 @@ export default function FeatureDetailDivision() {
|
|||||||
padding: 10
|
padding: 10
|
||||||
}} onClick={() => router.push(param.id + '/calender')}>
|
}} onClick={() => router.push(param.id + '/calender')}>
|
||||||
<Grid justify='center' align='center'>
|
<Grid justify='center' align='center'>
|
||||||
<Grid.Col span={"auto"}>
|
<Grid.Col span={{
|
||||||
|
base: isMobile2 ? 4 : 3.5,
|
||||||
|
xs: 3,
|
||||||
|
sm: 3,
|
||||||
|
md: 3,
|
||||||
|
}}>
|
||||||
<ActionIcon variant="filled"
|
<ActionIcon variant="filled"
|
||||||
size={isMobile2 ? "lg" : "xl"}
|
size={isMobile2 ? "lg" : "xl"}
|
||||||
aria-label="Gradient action icon"
|
aria-label="Gradient action icon"
|
||||||
@@ -143,7 +179,12 @@ export default function FeatureDetailDivision() {
|
|||||||
<IoCalendarOutline size={isMobile2 ? 20 : 25} color={tema.get().utama} />
|
<IoCalendarOutline size={isMobile2 ? 20 : 25} color={tema.get().utama} />
|
||||||
</ActionIcon>
|
</ActionIcon>
|
||||||
</Grid.Col>
|
</Grid.Col>
|
||||||
<Grid.Col span={{ base: 7, md: 9 }}>
|
<Grid.Col span={{
|
||||||
|
base: isMobile2 ? 8 : 7.5,
|
||||||
|
xs: 9,
|
||||||
|
md: 9,
|
||||||
|
sm: 9,
|
||||||
|
}}>
|
||||||
<Text fz={15} c={tema.get().utama} fw={"bold"}>Kalender</Text>
|
<Text fz={15} c={tema.get().utama} fw={"bold"}>Kalender</Text>
|
||||||
<Group justify='space-between' align='center'>
|
<Group justify='space-between' align='center'>
|
||||||
<Text fz={10} c={"gray"}>{feature?.kalender} Acara</Text>
|
<Text fz={10} c={"gray"}>{feature?.kalender} Acara</Text>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import { HiMenu } from 'react-icons/hi';
|
|||||||
import { HiMagnifyingGlass, HiMiniUserGroup, HiOutlineListBullet, HiSquares2X2 } from 'react-icons/hi2';
|
import { HiMagnifyingGlass, HiMiniUserGroup, HiOutlineListBullet, HiSquares2X2 } from 'react-icons/hi2';
|
||||||
import { MdAccountCircle } from 'react-icons/md';
|
import { MdAccountCircle } from 'react-icons/md';
|
||||||
import DrawerDivision from './drawer_division';
|
import DrawerDivision from './drawer_division';
|
||||||
import { useShallowEffect } from '@mantine/hooks';
|
import { useMediaQuery, useShallowEffect } from '@mantine/hooks';
|
||||||
import { IDataDivison } from '../lib/type_division';
|
import { IDataDivison } from '../lib/type_division';
|
||||||
import { funGetAllDivision } from '../lib/api_division';
|
import { funGetAllDivision } from '../lib/api_division';
|
||||||
import toast from 'react-hot-toast';
|
import toast from 'react-hot-toast';
|
||||||
@@ -27,6 +27,8 @@ export default function ListDivision() {
|
|||||||
const roleLogin = useHookstate(globalRole)
|
const roleLogin = useHookstate(globalRole)
|
||||||
const tema = useHookstate(TEMA)
|
const tema = useHookstate(TEMA)
|
||||||
|
|
||||||
|
const paddingLift = useMediaQuery('(max-width: 505px)')
|
||||||
|
|
||||||
|
|
||||||
const handleList = () => {
|
const handleList = () => {
|
||||||
setIsList(!isList)
|
setIsList(!isList)
|
||||||
@@ -131,12 +133,16 @@ export default function ListDivision() {
|
|||||||
data?.map((v: any, i: any) => {
|
data?.map((v: any, i: any) => {
|
||||||
return (
|
return (
|
||||||
<Box key={i}>
|
<Box key={i}>
|
||||||
<Grid align='center'>
|
<Grid align='center' onClick={() => router.push(`/division/${v.id}`)}>
|
||||||
<Grid.Col span={{
|
<Grid.Col span={{
|
||||||
base: 2,
|
base: 1,
|
||||||
|
xs: 1,
|
||||||
|
sm: 1,
|
||||||
|
md: 1,
|
||||||
|
lg: 1,
|
||||||
xl: 1
|
xl: 1
|
||||||
}}>
|
}}>
|
||||||
<Group onClick={() => router.push(`/division/${v.id}`)}>
|
<Group >
|
||||||
<Center>
|
<Center>
|
||||||
<ActionIcon
|
<ActionIcon
|
||||||
variant="gradient"
|
variant="gradient"
|
||||||
@@ -156,15 +162,19 @@ export default function ListDivision() {
|
|||||||
</Group>
|
</Group>
|
||||||
</Grid.Col>
|
</Grid.Col>
|
||||||
<Grid.Col span={{
|
<Grid.Col span={{
|
||||||
base: 10,
|
base: 11,
|
||||||
xl: 11
|
xs: 11,
|
||||||
|
sm: 11,
|
||||||
|
md: 11,
|
||||||
|
lg: 11,
|
||||||
|
xl: 11,
|
||||||
}}>
|
}}>
|
||||||
<Box>
|
<Box>
|
||||||
<Box w={{
|
<Box w={{
|
||||||
base: 280,
|
base: 280,
|
||||||
xl: 430
|
xl: 430
|
||||||
}}>
|
}}>
|
||||||
<Text truncate="end" pl={20}>
|
<Text truncate="end" pl={paddingLift ? 30 : 20}>
|
||||||
{v.name}
|
{v.name}
|
||||||
</Text>
|
</Text>
|
||||||
</Box>
|
</Box>
|
||||||
|
|||||||
@@ -55,6 +55,8 @@ export default function ListProject() {
|
|||||||
}
|
}
|
||||||
const isMobile = useMediaQuery('(max-width: 369px)');
|
const isMobile = useMediaQuery('(max-width: 369px)');
|
||||||
|
|
||||||
|
const paddingLift = useMediaQuery('(max-width: 505px)')
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Box mt={20}>
|
<Box mt={20}>
|
||||||
<Grid justify='center' align='center'>
|
<Grid justify='center' align='center'>
|
||||||
@@ -104,12 +106,16 @@ export default function ListProject() {
|
|||||||
{isData.map((v, i) => {
|
{isData.map((v, i) => {
|
||||||
return (
|
return (
|
||||||
<Box key={i}>
|
<Box key={i}>
|
||||||
<Grid align='center'>
|
<Grid align='center' onClick={() => router.push(`/project/${v.id}`)}>
|
||||||
<Grid.Col span={{
|
<Grid.Col span={{
|
||||||
base: 2,
|
base: 1,
|
||||||
|
xs: 1,
|
||||||
|
sm: 1,
|
||||||
|
md: 1,
|
||||||
|
lg: 1,
|
||||||
xl: 1
|
xl: 1
|
||||||
}}>
|
}}>
|
||||||
<Group onClick={() => router.push(`/project/${v.id}`)}>
|
<Group >
|
||||||
<Center>
|
<Center>
|
||||||
<ActionIcon
|
<ActionIcon
|
||||||
variant="gradient"
|
variant="gradient"
|
||||||
@@ -129,8 +135,12 @@ export default function ListProject() {
|
|||||||
</Group>
|
</Group>
|
||||||
</Grid.Col>
|
</Grid.Col>
|
||||||
<Grid.Col span={{
|
<Grid.Col span={{
|
||||||
base: 10,
|
base: 11,
|
||||||
xl: 11
|
xs: 11,
|
||||||
|
sm: 11,
|
||||||
|
md: 11,
|
||||||
|
lg: 11,
|
||||||
|
xl: 11,
|
||||||
}}>
|
}}>
|
||||||
<Group justify='space-between' align='center'>
|
<Group justify='space-between' align='center'>
|
||||||
<Box>
|
<Box>
|
||||||
@@ -138,7 +148,7 @@ export default function ListProject() {
|
|||||||
base: isMobile ? 200 : 230,
|
base: isMobile ? 200 : 230,
|
||||||
xl: 430
|
xl: 430
|
||||||
}}>
|
}}>
|
||||||
<Text truncate="end" pl={20}>
|
<Text truncate="end" pl={paddingLift ? 30 : 20}>
|
||||||
{v.title}
|
{v.title}
|
||||||
</Text>
|
</Text>
|
||||||
</Box>
|
</Box>
|
||||||
|
|||||||
@@ -57,9 +57,18 @@ export default function TabProject() {
|
|||||||
} />
|
} />
|
||||||
|
|
||||||
<Box p={20}>
|
<Box p={20}>
|
||||||
<Carousel dragFree slideGap={"xs"} align="start" slideSize={"xs"} withIndicators withControls={false}>
|
<Box
|
||||||
{dataStatus.map((item, index) => (
|
style={{
|
||||||
<Carousel.Slide key={index}>
|
display: "flex",
|
||||||
|
gap: "20px",
|
||||||
|
position: "relative",
|
||||||
|
overflowX: "scroll",
|
||||||
|
scrollbarWidth: "none",
|
||||||
|
maxWidth: "550px"
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<Flex gap={"md"} justify={"space-between"}>
|
||||||
|
{dataStatus.map((item, index) => (
|
||||||
<Button
|
<Button
|
||||||
variant="subtle"
|
variant="subtle"
|
||||||
color={
|
color={
|
||||||
@@ -67,6 +76,7 @@ export default function TabProject() {
|
|||||||
? "white"
|
? "white"
|
||||||
: tema.get().utama
|
: tema.get().utama
|
||||||
}
|
}
|
||||||
|
key={index}
|
||||||
onClick={() => { router.push("?status=" + item.id + "&group=" + group) }}
|
onClick={() => { router.push("?status=" + item.id + "&group=" + group) }}
|
||||||
defaultValue={(status == "1" || status == "2" || status == "3") ? status : "0"}
|
defaultValue={(status == "1" || status == "2" || status == "3") ? status : "0"}
|
||||||
radius={"xl"}
|
radius={"xl"}
|
||||||
@@ -75,91 +85,14 @@ export default function TabProject() {
|
|||||||
? tema.get().utama
|
? tema.get().utama
|
||||||
: "transparent"
|
: "transparent"
|
||||||
}
|
}
|
||||||
|
leftSection={item.icon}
|
||||||
>
|
>
|
||||||
{item.icon}
|
{item.title}
|
||||||
<Box ml={10}>{item.title}</Box>
|
|
||||||
</Button>
|
</Button>
|
||||||
</Carousel.Slide>
|
))}
|
||||||
))}
|
</Flex>
|
||||||
</Carousel>
|
</Box>
|
||||||
{/* <Flex justify={"center"} gap={'sm'} align={'center'} mt={10}>
|
|
||||||
{dataStatus.map((v, i) => (
|
|
||||||
<Box key={i}>
|
|
||||||
<Box w={6} h={6} bg={
|
|
||||||
status == v.id
|
|
||||||
? tema.get().utama
|
|
||||||
: "#B0AEAE"
|
|
||||||
} style={{
|
|
||||||
borderRadius: 100
|
|
||||||
}} />
|
|
||||||
</Box>
|
|
||||||
))}
|
|
||||||
</Flex> */}
|
|
||||||
<ListProject />
|
<ListProject />
|
||||||
{/* <Tabs variant="pills" radius="md" defaultValue={(status == "1" || status == "2" || status == "3") ? status : "0"}>
|
|
||||||
<SimpleGrid
|
|
||||||
cols={{ base: 2, sm: 2, lg: 4 }}
|
|
||||||
>
|
|
||||||
<Tabs.Tab value="0"
|
|
||||||
leftSection={<TbClockPause style={iconStyle} />}
|
|
||||||
onClick={() => { router.push("?status=0&group=" + group) }}
|
|
||||||
color={tema.get().utama}
|
|
||||||
>
|
|
||||||
Segera
|
|
||||||
</Tabs.Tab>
|
|
||||||
<Tabs.Tab value="1"
|
|
||||||
leftSection={<RiProgress3Line style={iconStyle} />}
|
|
||||||
onClick={() => { router.push("?status=1&group=" + group) }}
|
|
||||||
color={tema.get().utama}
|
|
||||||
>
|
|
||||||
Dikerjakan
|
|
||||||
</Tabs.Tab>
|
|
||||||
<Tabs.Tab value="2"
|
|
||||||
leftSection={<IoIosCheckmarkCircleOutline style={iconStyle} />}
|
|
||||||
onClick={() => { router.push("?status=2&group=" + group) }}
|
|
||||||
color={tema.get().utama}>
|
|
||||||
Selesai
|
|
||||||
</Tabs.Tab>
|
|
||||||
<Tabs.Tab value="3"
|
|
||||||
leftSection={<IoCloseCircleOutline style={iconStyle} />}
|
|
||||||
onClick={() => { router.push("?status=3&group=" + group) }}
|
|
||||||
color={tema.get().utama}>
|
|
||||||
Batal
|
|
||||||
</Tabs.Tab>
|
|
||||||
</SimpleGrid>
|
|
||||||
<ListProject />
|
|
||||||
</Tabs> */}
|
|
||||||
{/* <Tabs variant="pills" radius="xl" defaultValue={(status == "1" || status == "2" || status == "3") ? status : "0"}>
|
|
||||||
<Tabs.List grow justify='center'>
|
|
||||||
<Tabs.Tab value="0" w={"23%"}
|
|
||||||
leftSection={<TbClockPause style={iconStyle} />}
|
|
||||||
onClick={() => { router.push("?status=0&group=" + group) }}
|
|
||||||
color={tema.get().utama}
|
|
||||||
>
|
|
||||||
Segera
|
|
||||||
</Tabs.Tab>
|
|
||||||
<Tabs.Tab value="1" w={"28%"}
|
|
||||||
leftSection={<RiProgress3Line style={iconStyle} />}
|
|
||||||
onClick={() => { router.push("?status=1&group=" + group) }}
|
|
||||||
color={tema.get().utama}
|
|
||||||
>
|
|
||||||
Dikerjakan
|
|
||||||
</Tabs.Tab>
|
|
||||||
<Tabs.Tab value="2" w={"23%"}
|
|
||||||
leftSection={<IoIosCheckmarkCircleOutline style={iconStyle} />}
|
|
||||||
onClick={() => { router.push("?status=2&group=" + group) }}
|
|
||||||
color={tema.get().utama}>
|
|
||||||
Selesai
|
|
||||||
</Tabs.Tab>
|
|
||||||
<Tabs.Tab value="3" w={"20%"}
|
|
||||||
leftSection={<IoCloseCircleOutline style={iconStyle} />}
|
|
||||||
onClick={() => { router.push("?status=3&group=" + group) }}
|
|
||||||
color={tema.get().utama}>
|
|
||||||
Batal
|
|
||||||
</Tabs.Tab>
|
|
||||||
</Tabs.List>
|
|
||||||
<ListProject />
|
|
||||||
</Tabs> */}
|
|
||||||
|
|
||||||
</Box>
|
</Box>
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import { MdAccountCircle } from "react-icons/md";
|
|||||||
import { IDataTask } from "../lib/type_task";
|
import { IDataTask } from "../lib/type_task";
|
||||||
import { funGetAllTask } from "../lib/api_task";
|
import { funGetAllTask } from "../lib/api_task";
|
||||||
import toast from "react-hot-toast";
|
import toast from "react-hot-toast";
|
||||||
import { useShallowEffect } from "@mantine/hooks";
|
import { useMediaQuery, useShallowEffect } from "@mantine/hooks";
|
||||||
import _ from "lodash";
|
import _ from "lodash";
|
||||||
import { useHookstate } from "@hookstate/core";
|
import { useHookstate } from "@hookstate/core";
|
||||||
|
|
||||||
@@ -21,6 +21,7 @@ export default function ListDivisionTask() {
|
|||||||
const [searchQuery, setSearchQuery] = useState('')
|
const [searchQuery, setSearchQuery] = useState('')
|
||||||
const [loading, setLoading] = useState(true);
|
const [loading, setLoading] = useState(true);
|
||||||
const tema = useHookstate(TEMA)
|
const tema = useHookstate(TEMA)
|
||||||
|
const paddingLift = useMediaQuery('(max-width: 505px)')
|
||||||
|
|
||||||
const handleList = () => {
|
const handleList = () => {
|
||||||
setIsList(!isList)
|
setIsList(!isList)
|
||||||
@@ -102,7 +103,11 @@ export default function ListDivisionTask() {
|
|||||||
<Box key={i}>
|
<Box key={i}>
|
||||||
<Grid align='center'>
|
<Grid align='center'>
|
||||||
<Grid.Col span={{
|
<Grid.Col span={{
|
||||||
base: 2,
|
base: 1,
|
||||||
|
xs: 1,
|
||||||
|
sm: 1,
|
||||||
|
md: 1,
|
||||||
|
lg: 1,
|
||||||
xl: 1
|
xl: 1
|
||||||
}}>
|
}}>
|
||||||
<Group onClick={() => router.push(`task/${v.id}`)}>
|
<Group onClick={() => router.push(`task/${v.id}`)}>
|
||||||
@@ -125,15 +130,19 @@ export default function ListDivisionTask() {
|
|||||||
</Group>
|
</Group>
|
||||||
</Grid.Col>
|
</Grid.Col>
|
||||||
<Grid.Col span={{
|
<Grid.Col span={{
|
||||||
base: 10,
|
base: 11,
|
||||||
xl: 11
|
xs: 11,
|
||||||
|
sm: 11,
|
||||||
|
md: 11,
|
||||||
|
lg: 11,
|
||||||
|
xl: 11,
|
||||||
}}>
|
}}>
|
||||||
<Box>
|
<Box>
|
||||||
<Box w={{
|
<Box w={{
|
||||||
base: 280,
|
base: 280,
|
||||||
xl: 430
|
xl: 430
|
||||||
}}>
|
}}>
|
||||||
<Text truncate="end" pl={20}>
|
<Text truncate="end" pl={paddingLift ? 30 : 20}>
|
||||||
{v.title}
|
{v.title}
|
||||||
</Text>
|
</Text>
|
||||||
</Box>
|
</Box>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
'use client'
|
'use client'
|
||||||
import { Box, Button, rem, Tabs } from "@mantine/core";
|
import { Box, Button, Flex, rem, Tabs } from "@mantine/core";
|
||||||
import { IoIosCheckmarkCircleOutline } from "react-icons/io";
|
import { IoIosCheckmarkCircleOutline } from "react-icons/io";
|
||||||
import { IoCloseCircleOutline } from "react-icons/io5";
|
import { IoCloseCircleOutline } from "react-icons/io5";
|
||||||
import { RiProgress3Line } from "react-icons/ri";
|
import { RiProgress3Line } from "react-icons/ri";
|
||||||
@@ -42,60 +42,40 @@ export default function TabsDivisionTask() {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<Box p={20}>
|
<Box p={20}>
|
||||||
{/* <Tabs variant="pills" color='#FF9861' radius="xl" defaultValue={(status == "1" || status == "2" || status == "3") ? status : "0"}>
|
<Box
|
||||||
<Tabs.List grow bg={"white"} style={{
|
style={{
|
||||||
border: `1px solid ${"#EDEDED"}`,
|
display: "flex",
|
||||||
padding: 5,
|
gap: "20px",
|
||||||
borderRadius: 100
|
position: "relative",
|
||||||
}}>
|
overflowX: "scroll",
|
||||||
<Tabs.Tab value="0" w={"23%"}
|
scrollbarWidth: "none",
|
||||||
leftSection={<TbClockPause style={iconStyle} />}
|
maxWidth: "550px"
|
||||||
onClick={() => { router.push("?status=0") }}>
|
}}
|
||||||
Segera
|
>
|
||||||
</Tabs.Tab>
|
<Flex gap={"md"} justify={"space-between"}>
|
||||||
<Tabs.Tab value="1" w={"28%"}
|
|
||||||
leftSection={<RiProgress3Line style={iconStyle} />}
|
|
||||||
onClick={() => { router.push("?status=1") }}>
|
|
||||||
Dikerjakan
|
|
||||||
</Tabs.Tab>
|
|
||||||
<Tabs.Tab value="2" w={"23%"}
|
|
||||||
leftSection={<IoIosCheckmarkCircleOutline style={iconStyle} />}
|
|
||||||
onClick={() => { router.push("?status=2") }}>
|
|
||||||
Selesai
|
|
||||||
</Tabs.Tab>
|
|
||||||
<Tabs.Tab value="3" w={"20%"}
|
|
||||||
leftSection={<IoCloseCircleOutline style={iconStyle} />}
|
|
||||||
onClick={() => { router.push("?status=3") }}>
|
|
||||||
Batal
|
|
||||||
</Tabs.Tab>
|
|
||||||
</Tabs.List>
|
|
||||||
<ListDivisionTask />
|
|
||||||
</Tabs> */}
|
|
||||||
<Carousel dragFree slideGap={"xs"} align="start" slideSize={"xs"} withIndicators withControls={false}>
|
|
||||||
{dataStatus.map((item, index) => (
|
{dataStatus.map((item, index) => (
|
||||||
<Carousel.Slide key={index}>
|
<Button
|
||||||
<Button
|
variant="subtle"
|
||||||
variant="subtle"
|
color={
|
||||||
color={
|
status == item.id
|
||||||
status == item.id
|
? "white"
|
||||||
? "white"
|
: (status == null && item.id == "0") ? "white" : tema.get().utama
|
||||||
: (status == null && item.id == "0") ? "white" : tema.get().utama
|
}
|
||||||
}
|
onClick={() => { router.push("?status=" + item.id) }}
|
||||||
onClick={() => { router.push("?status=" + item.id) }}
|
defaultValue={(status == "1" || status == "2" || status == "3") ? status : "0"}
|
||||||
defaultValue={(status == "1" || status == "2" || status == "3") ? status : "0"}
|
radius={"xl"}
|
||||||
radius={"xl"}
|
bg={
|
||||||
bg={
|
status == item.id
|
||||||
status == item.id
|
? tema.get().bgFiturDivisi
|
||||||
? tema.get().bgFiturDivisi
|
: (status == null && item.id == "0") ? tema.get().bgFiturDivisi : "transparent"
|
||||||
: (status == null && item.id == "0") ? tema.get().bgFiturDivisi : "transparent"
|
}
|
||||||
}
|
leftSection={item.icon}
|
||||||
>
|
>
|
||||||
{item.icon}
|
{item.title}
|
||||||
<Box ml={10}>{item.title}</Box>
|
</Button>
|
||||||
</Button>
|
|
||||||
</Carousel.Slide>
|
|
||||||
))}
|
))}
|
||||||
</Carousel>
|
</Flex>
|
||||||
|
</Box>
|
||||||
<ListDivisionTask />
|
<ListDivisionTask />
|
||||||
</Box>
|
</Box>
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user