API Event

Add:
- api-client/api-event : fetch get one, update data, update status, create event

Fix:
- UI : create , detail dan status: untuk menyambungkan ke API

### No Issue
This commit is contained in:
2025-09-11 17:34:08 +08:00
parent 3854db9330
commit b6d4c0e6a6
12 changed files with 703 additions and 228 deletions

View File

@@ -1,4 +1,4 @@
/* eslint-disable @typescript-eslint/no-unused-vars */
// DateTimeInput.tsx
import { MainColor } from "@/constants/color-palet";
import { GStyles } from "@/styles/global-styles";
@@ -119,7 +119,7 @@ const DateTimeInput_Android: React.FC<DateTimeInputProps> = ({
<Ionicons
name="calendar-outline"
size={20}
color={MainColor.placeholder}
color={disabled ? MainColor.white_gray : MainColor.placeholder}
/>
</View>
@@ -131,8 +131,8 @@ const DateTimeInput_Android: React.FC<DateTimeInputProps> = ({
}}
>
<Grid.Col span={6} style={{}}>
<Pressable onPress={toggleDatePicker}>
<TextCustom color="gray">
<Pressable onPress={() => !disabled && toggleDatePicker()}>
<TextCustom color={disabled ? "default" : "gray"}>
{selectedDate ? (
<TextCustom color="black">
{selectedDate.toLocaleDateString()}
@@ -148,8 +148,8 @@ const DateTimeInput_Android: React.FC<DateTimeInputProps> = ({
</Grid.Col>
<Grid.Col span={5} style={{}}>
<Pressable onPress={toggleTimePicker}>
<TextCustom color="gray">
<Pressable onPress={() => !disabled && toggleTimePicker()}>
<TextCustom color={disabled ? "default" : "gray"}>
{selectedTime ? (
<TextCustom color="black">
{selectedTime.toLocaleTimeString("id-ID", {

View File

@@ -3,24 +3,19 @@ import { MainColor } from "@/constants/color-palet";
import { GStyles } from "@/styles/global-styles";
import { Ionicons } from "@expo/vector-icons";
import DateTimePicker, {
DateTimePickerEvent,
DateTimePickerEvent,
} from "@react-native-community/datetimepicker";
import dayjs from "dayjs";
import React, { useState } from "react";
import {
StyleProp,
Text,
View,
ViewStyle
} from "react-native";
import { StyleProp, Text, View, ViewStyle } from "react-native";
import ClickableCustom from "../Clickable/ClickableCustom";
import TextCustom from "../Text/TextCustom";
interface DateTimeInputProps {
// Main
value?: DateTimePickerEvent;
value?: DateTimePickerEvent | Date | null;
mode?: "date" | "time";
onChange: (selectedDate: DateTimePickerEvent) => void;
onChange: (selectedDate: DateTimePickerEvent | Date | null) => void;
maximumDate?: Date;
minimumDate?: Date;
// Main
@@ -74,7 +69,7 @@ const DateTimeInput_IOS: React.FC<DateTimeInputProps> = ({
<ClickableCustom
activeOpacity={0.8}
style={[GStyles.inputContainerArea, containerStyle]}
onPress={handlePress}
onPress={() => !disabled && handlePress()}
>
{label && (
<Text style={GStyles.inputLabel}>
@@ -95,11 +90,11 @@ const DateTimeInput_IOS: React.FC<DateTimeInputProps> = ({
<Ionicons
name="calendar-outline"
size={20}
color={MainColor.placeholder}
color={disabled ? MainColor.white : MainColor.placeholder}
/>
</View>
<TextCustom color="gray">
<TextCustom color={disabled ? "default" : "gray"}>
{selectedDate ? (
<TextCustom color="black">
{dayjs(selectedDate).format("DD-MM-YYYY HH:mm")}

View File

@@ -1,19 +1,17 @@
import {
DateTimePickerEvent,
} from "@react-native-community/datetimepicker";
import { DateTimePickerEvent } from "@react-native-community/datetimepicker";
import React from "react";
import { Platform } from "react-native";
import DateTimeInput_Android from "./DataTimeAndroid";
import DateTimeInput_IOS from "./DateTimeIOS";
type Props = {
value?: Date;
value?: Date | DateTimePickerEvent | null;
onChange?: (date: Date) => void;
label?: string;
required?: boolean;
maximumDate?: Date;
minimumDate?: Date;
disabled?: boolean;
};
const DateTimePickerCustom: React.FC<Props> = ({
@@ -23,18 +21,21 @@ const DateTimePickerCustom: React.FC<Props> = ({
required,
maximumDate,
minimumDate,
disabled = false,
}) => {
return (
<>
{Platform.OS === "ios" ? (
<DateTimeInput_IOS
label={label}
onChange={(date: DateTimePickerEvent) => {
onChange={(date: DateTimePickerEvent | Date | null) => {
onChange?.(date as any);
}}
required={required}
maximumDate={maximumDate}
minimumDate={minimumDate}
disabled={disabled}
value={value as DateTimePickerEvent | Date | null}
/>
) : (
<DateTimeInput_Android
@@ -45,6 +46,7 @@ const DateTimePickerCustom: React.FC<Props> = ({
required={required}
maximumDate={maximumDate}
minimumDate={minimumDate}
disabled={disabled}
/>
)}
</>