fix: project kegiatan

Deskripsi:
- fix format tgl di server soalnya di server -1 day, di tambah kegiatan, tambah task kegiatan, dan edit task kegiatan
- hapus pilih semua pada bagian pilih anggota

No Issues
This commit is contained in:
amel
2024-11-07 17:21:59 +08:00
parent 14b1c9c012
commit aac649b01f
12 changed files with 34 additions and 32 deletions

View File

@@ -1,4 +1,4 @@
import { IFormAddDetailproject, IFormAddMemberProject, IFormDateProject } from "./type_project";
import { IFormAddDetailproject, IFormAddMemberProject, IFormDateProject, NewIFormDateProject } from "./type_project";
export const funGetAllProject = async (path?: string) => {
@@ -54,7 +54,7 @@ export const funGetDetailProject = async (path: string) => {
return await response.json().catch(() => null);
}
export const funEditDetailProject = async (path: string, data: IFormDateProject) => {
export const funEditDetailProject = async (path: string, data: NewIFormDateProject) => {
const response = await fetch(`/api/project/detail/${path}`, {
method: "POST",
headers: {

View File

@@ -45,6 +45,12 @@ export interface IFormDateProject {
title: string,
}
export interface NewIFormDateProject{
dateStart: string,
dateEnd: string,
title: string,
}
export interface IFormMemberProject {
idUser: string,
name: string,
@@ -53,8 +59,8 @@ export interface IFormMemberProject {
export interface IFormAddDetailproject {
dateStart: Date,
dateEnd: Date,
dateStart: string,
dateEnd: string,
name: string
}

View File

@@ -4,13 +4,13 @@ import LayoutModal from '@/module/_global/layout/layout_modal';
import { useHookstate } from '@hookstate/core';
import { Box, Button, Flex, Group, rem, SimpleGrid, Stack, Text, TextInput } from '@mantine/core';
import { DatePicker } from '@mantine/dates';
import { useShallowEffect } from '@mantine/hooks';
import moment from 'moment';
import { useParams, useRouter } from 'next/navigation';
import { useState } from 'react';
import toast from 'react-hot-toast';
import { useWibuRealtime } from 'wibu-realtime';
import { funCreateDetailProject } from '../lib/api_project';
import { useShallowEffect } from '@mantine/hooks';
export default function AddDetailTaskProject() {
const [value, setValue] = useState<[Date | null, Date | null]>([null, null]);
@@ -35,8 +35,8 @@ export default function AddDetailTaskProject() {
setLoadingModal(true)
const res = await funCreateDetailProject(param.id, {
name,
dateStart: (value[0] != null) ? value[0] : new Date,
dateEnd: (value[1] != null) ? value[1] : new Date,
dateStart: (value[0] != null) ? moment(value[0]).format('YYYY-MM-DD') : moment(new Date).format('YYYY-MM-DD'),
dateEnd: (value[1] != null) ? moment(value[1]).format('YYYY-MM-DD') : moment(new Date).format('YYYY-MM-DD'),
})
if (res.success) {

View File

@@ -223,12 +223,12 @@ export default function AddMemberDetailProject() {
</Box>
<Box p={20}>
<Group justify="space-between" mt={100} onClick={handleSelectAll}>
{/* <Group justify="space-between" mt={100} onClick={handleSelectAll}>
<Text c={tema.get().utama} fw={"bold"}>
Pilih Semua Anggota
</Text>
{selectAll ? <FaCheck style={{ marginRight: 10 }} /> : ""}
</Group>
</Group> */}
{loading ?
Array(8)
.fill(null)

View File

@@ -3,15 +3,15 @@ import { LayoutNavbarNew, TEMA } from "@/module/_global";
import { useHookstate } from "@hookstate/core";
import { ActionIcon, Box, Button, Flex, Group, rem, SimpleGrid, Stack, Text, TextInput } from "@mantine/core";
import { DatePicker } from "@mantine/dates";
import { useShallowEffect } from "@mantine/hooks";
import moment from "moment";
import { useState } from "react";
import toast from "react-hot-toast";
import { HiChevronLeft } from "react-icons/hi2";
import { IFormDateProject } from "../lib/type_project";
import { useShallowEffect } from "@mantine/hooks";
import { NewIFormDateProject } from "../lib/type_project";
export default function ViewDateEndTask({ onClose, onSet }: { onClose: (val: boolean) => void, onSet: (val: IFormDateProject) => void }) {
export default function ViewDateEndTask({ onClose, onSet }: { onClose: (val: boolean) => void, onSet: (val: NewIFormDateProject) => void }) {
const [value, setValue] = useState<[Date | null, Date | null]>([null, null]);
const [title, setTitle] = useState("")
const tema = useHookstate(TEMA)
@@ -29,8 +29,8 @@ export default function ViewDateEndTask({ onClose, onSet }: { onClose: (val: boo
return toast.error("Error! harus memasukkan judul tugas")
onSet({
dateStart: value[0],
dateEnd: value[1],
dateStart: moment(value[0]).format('YYYY-MM-DD'),
dateEnd: moment(value[1]).format('YYYY-MM-DD'),
title: title
})
}

View File

@@ -15,7 +15,7 @@ import { FaTrash } from "react-icons/fa6";
import { IoIosArrowDropright } from "react-icons/io";
import { useWibuRealtime } from "wibu-realtime";
import { funCreateProject } from "../lib/api_project";
import { IFormDateProject, IFormMemberProject, IListFileTaskProject } from "../lib/type_project";
import { IFormMemberProject, IListFileTaskProject, NewIFormDateProject } from "../lib/type_project";
import { globalMemberProject } from "../lib/val_project";
import ViewDateEndTask from "./create_date_end_task";
import CreateUsersProject from "./create_users_project";
@@ -32,7 +32,7 @@ export default function CreateProject() {
const member = useHookstate(globalMemberProject)
const memberValue = member.get() as IFormMemberProject[]
const [openTugas, setOpenTugas] = useState(false)
const [dataTask, setDataTask] = useState<IFormDateProject[]>([])
const [dataTask, setDataTask] = useState<NewIFormDateProject[]>([])
const openRef = useRef<() => void>(null)
const [fileForm, setFileForm] = useState<any[]>([])
const [listFile, setListFile] = useState<IListFileTaskProject[]>([])

View File

@@ -42,8 +42,8 @@ export default function EditDetailTaskProject() {
setLoadingModal(true)
const res = await funEditDetailProject(param.id, {
title: name,
dateStart: value[0],
dateEnd: value[1],
dateStart: moment(value[0]).format('YYYY-MM-DD'),
dateEnd: moment(value[1]).format('YYYY-MM-DD'),
})

View File

@@ -1,10 +1,9 @@
import { Box, Center, Grid, Group, SimpleGrid, Spoiler, Text } from '@mantine/core';
import React from 'react';
import { AiOutlineFileSync } from "react-icons/ai";
import { IFormDateProject } from '../lib/type_project';
import { Box, Center, Grid, Group, SimpleGrid, Text } from '@mantine/core';
import moment from 'moment';
import { AiOutlineFileSync } from "react-icons/ai";
import { NewIFormDateProject } from '../lib/type_project';
export default function ResultsDateAndTask(data: IFormDateProject) {
export default function ResultsDateAndTask(data: NewIFormDateProject) {
return (
<Box pt={5}>
<Box bg={"white"} style={{