diff --git a/app/(application)/(user)/event/(tabs)/_layout.tsx b/app/(application)/(user)/event/(tabs)/_layout.tsx
index 44081e8..89996cd 100644
--- a/app/(application)/(user)/event/(tabs)/_layout.tsx
+++ b/app/(application)/(user)/event/(tabs)/_layout.tsx
@@ -8,7 +8,7 @@ export default function EventLayout() {
screenOptions={{
headerShown: false,
tabBarActiveTintColor: MainColor.yellow,
- tabBarInactiveTintColor: MainColor.white,
+ tabBarInactiveTintColor: MainColor.white_gray,
tabBarStyle: {
backgroundColor: MainColor.darkblue,
},
diff --git a/app/(application)/(user)/portofolio/[id]/create.tsx b/app/(application)/(user)/portofolio/[id]/create.tsx
index bf9a250..6a9c7aa 100644
--- a/app/(application)/(user)/portofolio/[id]/create.tsx
+++ b/app/(application)/(user)/portofolio/[id]/create.tsx
@@ -1,11 +1,170 @@
-import { TextCustom, ViewWrapper } from "@/components";
+/* eslint-disable @typescript-eslint/no-unused-vars */
+import {
+ ButtonCustom,
+ Grid,
+ SelectCustom,
+ Spacing,
+ StackCustom,
+ TextAreaCustom,
+ TextCustom,
+ TextInputCustom,
+ ViewWrapper,
+} from "@/components";
+import BoxButtonOnFooter from "@/components/Box/BoxButtonOnFooter";
+import InformationBox from "@/components/Box/InformationBox";
+import ButtonCenteredOnly from "@/components/Button/ButtonCenteredOnly";
+import LandscapeFrameUploaded from "@/components/Image/LandscapeFrameUploaded";
+import { MainColor } from "@/constants/color-palet";
+import dummyMasterBidangBisnis from "@/lib/dummy-data/master-bidang-bisnis";
+import dummyMasterSubBidangBisnis from "@/lib/dummy-data/master-sub-bidang-bisnis";
+import { Ionicons } from "@expo/vector-icons";
import { useLocalSearchParams } from "expo-router";
+import { useState } from "react";
+import { Text, TouchableOpacity, View } from "react-native";
+import PhoneInput, { ICountry } from "react-native-international-phone-number";
export default function PortofolioCreate() {
- const { id } = useLocalSearchParams();
- return (
-
- Portofolio Create {id}
-
- );
-}
\ No newline at end of file
+ const { id } = useLocalSearchParams();
+ const [selectedCountry, setSelectedCountry] = useState(null);
+ const [inputValue, setInputValue] = useState("");
+ const [data, setData] = useState({
+ name: "",
+ bidang_usaha: "",
+ sub_bidang_usaha: "",
+ alamat: "",
+ nomor_telepon: "",
+ deskripsi: "",
+ });
+
+ function handleInputValue(phoneNumber: string) {
+ setInputValue(phoneNumber);
+ }
+
+ function handleSelectedCountry(country: ICountry) {
+ setSelectedCountry(country);
+ }
+
+ function handleSave() {
+ console.log("save");
+ }
+
+ const buttonSave = (
+
+ Selanjutnya
+
+ );
+
+ return (
+
+ {/* Portofolio Create {id} */}
+
+
+
+ ({
+ label: item.name,
+ value: item.id,
+ }))}
+ value=""
+ onChange={(value) => console.log(value)}
+ />
+
+
+ ({
+ label: item.name,
+ value: item.id,
+ }))}
+ value=""
+ onChange={(value) => console.log(value)}
+ />
+
+
+ console.log("delete")}>
+
+
+
+
+ console.log("add")}>
+ Tambah Pilihan
+
+
+
+
+
+
+ Nomor Telepon
+
+ *
+
+
+
+
+
+ setData({ ...data, deskripsi: value })}
+ autosize
+ minRows={2}
+ maxRows={5}
+ required
+ showCount
+ maxLength={100}
+ />
+
+
+
+ console.log("upload")}>
+ Upload
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/app/(application)/(user)/profile/[id]/create.tsx b/app/(application)/(user)/profile/[id]/create.tsx
index 3db1ada..6362cee 100644
--- a/app/(application)/(user)/profile/[id]/create.tsx
+++ b/app/(application)/(user)/profile/[id]/create.tsx
@@ -7,10 +7,10 @@ import {
TextInputCustom,
ViewWrapper,
} from "@/components";
+import BoxButtonOnFooter from "@/components/Box/BoxButtonOnFooter";
import InformationBox from "@/components/Box/InformationBox";
import ButtonUpload from "@/components/Button/ButtonUpload";
import LandscapeFrameUploaded from "@/components/Image/LandscapeFrameUploaded";
-import { GStyles } from "@/styles/global-styles";
import { router, useLocalSearchParams } from "expo-router";
import { useState } from "react";
import { View } from "react-native";
@@ -30,16 +30,14 @@ export default function CreateProfile() {
};
const footerComponent = (
-
-
-
- Simpan
-
-
-
+
+
+ Simpan
+
+
);
return (
diff --git a/app/(application)/(user)/profile/[id]/edit.tsx b/app/(application)/(user)/profile/[id]/edit.tsx
index c3f14a2..3ed0078 100644
--- a/app/(application)/(user)/profile/[id]/edit.tsx
+++ b/app/(application)/(user)/profile/[id]/edit.tsx
@@ -6,6 +6,7 @@ import {
TextInputCustom,
ViewWrapper,
} from "@/components";
+import BoxButtonOnFooter from "@/components/Box/BoxButtonOnFooter";
import { router, useLocalSearchParams } from "expo-router";
import { useState } from "react";
import { StyleSheet } from "react-native";
@@ -44,15 +45,17 @@ export default function ProfileEdit() {
return (
- Simpan
-
+ footerComponent={
+
+
+ Simpan
+
+
}
>
diff --git a/components/Alert/AlertCustom.tsx b/components/Alert/AlertCustom.tsx
index 4d3b7dd..c5165fd 100644
--- a/components/Alert/AlertCustom.tsx
+++ b/components/Alert/AlertCustom.tsx
@@ -95,12 +95,12 @@ const styles = StyleSheet.create({
fontSize: TEXT_SIZE_LARGE,
fontWeight: "bold",
marginBottom: 20,
- color: MainColor.white,
+ color: MainColor.white_gray,
},
alertMessage: {
textAlign: "center",
marginBottom: 20,
- color: MainColor.white,
+ color: MainColor.white_gray,
},
alertButtons: {
flexDirection: "row",
diff --git a/components/Box/BoxButtonOnFooter.tsx b/components/Box/BoxButtonOnFooter.tsx
new file mode 100644
index 0000000..79c1561
--- /dev/null
+++ b/components/Box/BoxButtonOnFooter.tsx
@@ -0,0 +1,16 @@
+import { GStyles } from "@/styles/global-styles";
+import { StyleProp, View, ViewStyle } from "react-native";
+
+export default function BoxButtonOnFooter({
+ children,
+ style,
+}: {
+ children: React.ReactNode;
+ style?: StyleProp;
+}) {
+ return (
+
+ {children}
+
+ );
+}
diff --git a/components/Box/InformationBox.tsx b/components/Box/InformationBox.tsx
index 4cd996a..f9d2f9b 100644
--- a/components/Box/InformationBox.tsx
+++ b/components/Box/InformationBox.tsx
@@ -16,7 +16,7 @@ export default function InformationBox({ text }: { text: string }) {
diff --git a/components/Button/ButtonCenteredOnly.tsx b/components/Button/ButtonCenteredOnly.tsx
new file mode 100644
index 0000000..8ec937a
--- /dev/null
+++ b/components/Button/ButtonCenteredOnly.tsx
@@ -0,0 +1,29 @@
+import { MainColor } from "@/constants/color-palet";
+import { ICON_SIZE_BUTTON } from "@/constants/constans-value";
+import { GStyles } from "@/styles/global-styles";
+import { Feather } from "@expo/vector-icons";
+import React from "react";
+import ButtonCustom from "./ButtonCustom";
+
+interface ButtonCenteredOnlyProps {
+ children?: React.ReactNode;
+ icon?: "plus" | "upload";
+ onPress: () => void;
+}
+export default function ButtonCenteredOnly({
+ onPress,
+ children,
+ icon = "plus"
+}: ButtonCenteredOnlyProps) {
+ return (
+
+ }
+ style={[GStyles.buttonCentered50Percent]}
+ >
+ {children}
+
+ );
+}
diff --git a/components/Button/buttonCustomStyles.ts b/components/Button/buttonCustomStyles.ts
index f9144fc..274f772 100644
--- a/components/Button/buttonCustomStyles.ts
+++ b/components/Button/buttonCustomStyles.ts
@@ -1,6 +1,7 @@
// components/Button/buttonStyles.js
import { MainColor } from "@/constants/color-palet";
+import { TEXT_SIZE_MEDIUM } from "@/constants/constans-value";
import { StyleSheet } from "react-native";
export default function buttonStyles({
@@ -21,7 +22,7 @@ export default function buttonStyles({
},
buttonText: {
color: textColor,
- fontSize: 16,
+ fontSize: TEXT_SIZE_MEDIUM,
fontWeight: "600",
},
disabled: {
diff --git a/components/Drawer/DrawerCustom.tsx b/components/Drawer/DrawerCustom.tsx
index da387f0..6976f4f 100644
--- a/components/Drawer/DrawerCustom.tsx
+++ b/components/Drawer/DrawerCustom.tsx
@@ -1,10 +1,10 @@
import React, { useRef } from "react";
import {
- Animated,
- PanResponder,
- StyleSheet,
- View,
- InteractionManager,
+ Animated,
+ InteractionManager,
+ PanResponder,
+ StyleSheet,
+ View,
} from "react-native";
import { AccentColor, MainColor } from "@/constants/color-palet";
@@ -86,7 +86,7 @@ DrawerCustomProps) {
{...panResponder.panHandlers}
>
{children}
@@ -152,7 +152,7 @@ const styles = StyleSheet.create({
headerBar: {
width: 40,
height: 5,
- backgroundColor: MainColor.white,
+ backgroundColor: MainColor.white_gray,
borderRadius: 5,
alignSelf: "center",
marginVertical: 10,
diff --git a/components/Drawer/MenuDrawerDynamicGird.tsx b/components/Drawer/MenuDrawerDynamicGird.tsx
index ad6c2ce..cba0440 100644
--- a/components/Drawer/MenuDrawerDynamicGird.tsx
+++ b/components/Drawer/MenuDrawerDynamicGird.tsx
@@ -1,7 +1,7 @@
import { AccentColor, MainColor } from "@/constants/color-palet";
import { ICON_SIZE_MEDIUM, TEXT_SIZE_SMALL } from "@/constants/constans-value";
import { Ionicons } from "@expo/vector-icons";
-import { View, TouchableOpacity, Text, StyleSheet } from "react-native";
+import { StyleSheet, Text, TouchableOpacity, View } from "react-native";
const MenuDrawerDynamicGrid = ({ data, columns = 3, onPressItem }: any) => {
const numColumns = columns;
@@ -18,7 +18,7 @@ const MenuDrawerDynamicGrid = ({ data, columns = 3, onPressItem }: any) => {
{item.label}
@@ -52,6 +52,6 @@ const styles = StyleSheet.create({
marginTop: 10,
fontSize: TEXT_SIZE_SMALL,
textAlign: "center",
- color: MainColor.white,
+ color: MainColor.white_gray,
},
});
\ No newline at end of file
diff --git a/components/Grid/GridCustom.tsx b/components/Grid/GridCustom.tsx
index 4aac270..6df544a 100644
--- a/components/Grid/GridCustom.tsx
+++ b/components/Grid/GridCustom.tsx
@@ -109,5 +109,6 @@ const styles = StyleSheet.create({
flexDirection: "row",
flexWrap: "wrap",
justifyContent: "flex-start",
+ marginInline: 0.1
},
});
diff --git a/components/Image/AvatarCustom.tsx b/components/Image/AvatarCustom.tsx
index 17d8b67..d4a6889 100644
--- a/components/Image/AvatarCustom.tsx
+++ b/components/Image/AvatarCustom.tsx
@@ -47,7 +47,7 @@ const styles = StyleSheet.create({
overlappingAvatar: {
borderWidth: 2,
borderColor: "#fff",
- backgroundColor: MainColor.white,
+ backgroundColor: MainColor.white_gray,
// shadowColor: "#000",
// shadowOffset: { width: 0, height: 2 },
// shadowOpacity: 0.2,
diff --git a/components/Select/SelectCustom.tsx b/components/Select/SelectCustom.tsx
index 557a304..3e9e1aa 100644
--- a/components/Select/SelectCustom.tsx
+++ b/components/Select/SelectCustom.tsx
@@ -3,13 +3,13 @@ import { MainColor } from "@/constants/color-palet";
import { TEXT_SIZE_MEDIUM } from "@/constants/constans-value";
import React, { useState } from "react";
import {
- View,
- Text,
- Pressable,
- Modal,
FlatList,
+ Modal,
+ Pressable,
StyleSheet,
+ Text,
TouchableOpacity,
+ View,
} from "react-native";
type SelectItem = {
@@ -100,7 +100,7 @@ const styles = StyleSheet.create({
label: {
fontSize: TEXT_SIZE_MEDIUM,
marginBottom: 4,
- color: MainColor.white,
+ color: MainColor.white_gray,
fontWeight: "500",
},
requiredIndicator: {
@@ -109,7 +109,7 @@ const styles = StyleSheet.create({
},
input: {
borderWidth: 1,
- borderColor: "#ccc",
+ borderColor: MainColor.white_gray,
padding: 12,
borderRadius: 8,
minHeight: 48,
diff --git a/components/Stack/StackCustom.tsx b/components/Stack/StackCustom.tsx
index 85398d0..6b0ab21 100644
--- a/components/Stack/StackCustom.tsx
+++ b/components/Stack/StackCustom.tsx
@@ -1,3 +1,4 @@
+/* eslint-disable @typescript-eslint/no-unused-vars */
// components/Stack.tsx
import React from "react";
@@ -18,7 +19,7 @@ const StackCustom: React.FC = ({
children,
align = "stretch",
justify = "flex-start",
- gap = "md",
+ gap = "xs",
direction = "column",
style,
}) => {
@@ -57,10 +58,10 @@ const convertToSpacing = (value: GapSizeType): number => {
return sizes[value] || 16; // default md
};
-const styles = StyleSheet.create({
- stack: {
- flex: 1,
- },
-});
+// const styles = StyleSheet.create({
+// stack: {
+// flex: 1,
+// },
+// });
export default StackCustom;
diff --git a/components/TextArea/TextAreaCustom.tsx b/components/TextArea/TextAreaCustom.tsx
new file mode 100644
index 0000000..d17aacd
--- /dev/null
+++ b/components/TextArea/TextAreaCustom.tsx
@@ -0,0 +1,144 @@
+import React, { useEffect, useState } from "react";
+import {
+ TextInput as RNTextInput,
+ StyleProp,
+ Text,
+ View,
+ ViewStyle,
+} from "react-native";
+
+import { textInputStyles } from "../TextInput/textInputStyles";
+
+type IconType = React.ReactNode | string;
+
+type BaseProps = {
+ iconLeft?: IconType;
+ iconRight?: IconType;
+ label?: string;
+ required?: boolean;
+ error?: string;
+ fontColor?: string;
+ disabled?: boolean;
+ borderRadius?: number;
+ autosize?: boolean;
+ minRows?: number;
+ maxRows?: number;
+ showCount?: boolean;
+ maxLength?: number;
+ style?: StyleProp;
+};
+
+type NativeTextInputProps = Omit<
+ React.ComponentProps,
+ "style"
+>;
+
+export type TextAreaCustomProps = BaseProps & NativeTextInputProps;
+
+const TextAreaCustom: React.FC = ({
+ iconLeft,
+ iconRight,
+ label,
+ required = false,
+ error = "",
+ fontColor = "#000",
+ disabled = false,
+ borderRadius = 8,
+ autosize = false,
+ minRows = 3,
+ maxRows = 6,
+ showCount = false,
+ maxLength,
+ value,
+ onChangeText,
+ style,
+ ...rest
+}) => {
+ const [numberOfLines, setNumberOfLines] = useState(minRows);
+
+ // Autosizing logic
+ useEffect(() => {
+ if (!autosize || !value) return;
+
+ const text = value as string;
+ const lines = text.split("\n").length;
+ const newLines = Math.max(minRows, Math.min(maxRows, lines));
+ setNumberOfLines(newLines);
+ }, [value, autosize, minRows, maxRows]);
+
+ const hasError = Boolean(error);
+
+ const renderIcon = (icon: IconType) => {
+ if (!icon) return null;
+ return typeof icon === "string" ? (
+ {icon}
+ ) : (
+ icon
+ );
+ };
+
+ return (
+
+ {label && (
+
+ {label}
+ {required && *}
+
+ )}
+
+ {iconLeft && (
+ {renderIcon(iconLeft)}
+ )}
+
+
+
+ {iconRight && (
+ {renderIcon(iconRight)}
+ )}
+
+
+ {/* Error Message atau Counter */}
+
+ {hasError ? (
+ {error}
+ ) : null}
+
+ {showCount && maxLength ? (
+
+ {(value as string)?.length || 0}/{maxLength}
+
+ ) : null}
+
+
+ );
+};
+
+export default TextAreaCustom;
diff --git a/components/TextInput/TextInputCustom.tsx b/components/TextInput/TextInputCustom.tsx
index 0be5c29..405e7b1 100644
--- a/components/TextInput/TextInputCustom.tsx
+++ b/components/TextInput/TextInputCustom.tsx
@@ -23,6 +23,7 @@ type Props = {
disabled?: boolean;
borderRadius?: number;
style?: StyleProp;
+ maxLength?: number;
} & Omit, "style">;
export const TextInputCustom = ({
@@ -38,6 +39,7 @@ export const TextInputCustom = ({
style,
keyboardType,
onChangeText,
+ maxLength,
...rest
}: Props) => {
const [isPasswordVisible, setIsPasswordVisible] = useState(false);
@@ -96,6 +98,7 @@ export const TextInputCustom = ({
secureTextEntry={secureTextEntry && !isPasswordVisible}
keyboardType={keyboardType}
onChangeText={handleTextChange}
+ maxLength={maxLength}
{...rest}
/>
{secureTextEntry && (
diff --git a/components/TextInput/textInputStyles.ts b/components/TextInput/textInputStyles.ts
index f285094..ed300bc 100644
--- a/components/TextInput/textInputStyles.ts
+++ b/components/TextInput/textInputStyles.ts
@@ -1,5 +1,6 @@
// components/text-input.styles.ts
-import { AccentColor, MainColor } from "@/constants/color-palet";
+import { MainColor } from "@/constants/color-palet";
+import { TEXT_SIZE_LARGE, TEXT_SIZE_MEDIUM } from "@/constants/constans-value";
import { StyleSheet } from "react-native";
export const textInputStyles = StyleSheet.create({
@@ -13,7 +14,7 @@ export const textInputStyles = StyleSheet.create({
fontSize: 14,
marginBottom: 6,
fontWeight: "500",
- color: MainColor.white,
+ color: MainColor.white_gray,
},
// Tanda bintang merah untuk required
@@ -28,12 +29,18 @@ export const textInputStyles = StyleSheet.create({
color: MainColor.red,
},
+ // Input Length
+ inputLength: {
+ fontSize: 12,
+ color: MainColor.white_gray,
+ },
+
// Wrapper input (View pembungkus TextInput)
inputContainer: {
flexDirection: "row",
alignItems: "center",
borderWidth: 1,
- borderColor: AccentColor.white,
+ borderColor: MainColor.white_gray,
backgroundColor: MainColor.white,
paddingHorizontal: 12,
height: 50,
@@ -48,7 +55,7 @@ export const textInputStyles = StyleSheet.create({
// Input utama (TextInput)
input: {
flex: 1,
- fontSize: 16,
+ fontSize: TEXT_SIZE_MEDIUM,
paddingVertical: 0,
},
@@ -60,7 +67,7 @@ export const textInputStyles = StyleSheet.create({
// Teks ikon jika berupa string
iconText: {
- fontSize: 16,
+ fontSize: TEXT_SIZE_LARGE,
color: "#000",
},
@@ -68,4 +75,11 @@ export const textInputStyles = StyleSheet.create({
errorBorder: {
borderColor: "red",
},
+
+ // Untuk TextArea tambahan
+ textArea: {
+ textAlignVertical: "top",
+ padding: 12,
+ height: undefined, // biar multiline bebas tinggi
+ },
});
diff --git a/components/index.ts b/components/index.ts
index b3e332e..9bc6a81 100644
--- a/components/index.ts
+++ b/components/index.ts
@@ -2,7 +2,9 @@
import AlertCustom from "./Alert/AlertCustom";
// Button
import LeftButtonCustom from "./Button/BackButton";
+import ButtonCenteredOnly from "./Button/ButtonCenteredOnly";
import ButtonCustom from "./Button/ButtonCustom";
+import ButtonUpload from "./Button/ButtonUpload";
// Drawer
import DrawerCustom from "./Drawer/DrawerCustom";
import MenuDrawerDynamicGrid from "./Drawer/MenuDrawerDynamicGird";
@@ -13,6 +15,8 @@ import ViewWrapper from "./_ShareComponent/ViewWrapper";
import TextCustom from "./Text/TextCustom";
// TextInput
import { TextInputCustom } from "./TextInput/TextInputCustom";
+// TextArea
+import TextAreaCustom from "./TextArea/TextAreaCustom";
// Grid
import Grid from "./Grid/GridCustom";
// Box
@@ -31,7 +35,7 @@ export {
// Button
LeftButtonCustom as BackButton,
// Box
- BaseBox, ButtonCustom,
+ BaseBox, ButtonCenteredOnly, ButtonCustom, ButtonUpload,
// Drawer
DrawerCustom,
// Grid
@@ -42,9 +46,13 @@ export {
Spacing,
// Stack
StackCustom,
+ // TextArea
+ TextAreaCustom,
// Text
TextCustom,
// TextInput
- TextInputCustom, ViewWrapper
+ TextInputCustom,
+ // ViewWrapper
+ ViewWrapper
};
diff --git a/constants/color-palet.ts b/constants/color-palet.ts
index 114e16b..02c57f7 100644
--- a/constants/color-palet.ts
+++ b/constants/color-palet.ts
@@ -3,13 +3,14 @@ export const MainColor = {
darkblue: "#001D3D",
soft_darkblue: "#0e3763",
yellow: "#E1B525",
- white: "#D4D0D0",
+ white_gray: "#D4D0D0",
red: "#FF4B4C",
orange: "#FF7043",
green: "#4CAF4F",
text_input: "#EDEBEBFF",
placeholder: "#999",
disabled: "#606360",
+ white: "#ffffff",
};
export const AccentColor = {
diff --git a/constants/constans-value.ts b/constants/constans-value.ts
index 3a6e50c..04a9502 100644
--- a/constants/constans-value.ts
+++ b/constants/constans-value.ts
@@ -6,6 +6,7 @@ export {
ICON_SIZE_MEDIUM,
DRAWER_HEIGHT,
RADIUS_BUTTON,
+ ICON_SIZE_BUTTON,
};
const TEXT_SIZE_SMALL = 12;
@@ -14,4 +15,5 @@ const TEXT_SIZE_LARGE = 16;
const ICON_SIZE_SMALL = 20;
const ICON_SIZE_MEDIUM = 24;
const DRAWER_HEIGHT = 500; // tinggi drawer5
-const RADIUS_BUTTON = 50
\ No newline at end of file
+const RADIUS_BUTTON = 50
+const ICON_SIZE_BUTTON = 18
\ No newline at end of file
diff --git a/lib/dummy-data/master-bidang-bisnis.ts b/lib/dummy-data/master-bidang-bisnis.ts
new file mode 100644
index 0000000..6f5b16f
--- /dev/null
+++ b/lib/dummy-data/master-bidang-bisnis.ts
@@ -0,0 +1,100 @@
+const dummyMasterBidangBisnis = [
+ {
+ id: "1",
+ name: "Teknologi dan Digital",
+ slug: "teknologi_dan_digital",
+ active: true,
+ createdAt: "2025-06-16T09:57:16.403Z",
+ updatedAt: "2025-06-16T09:57:16.403Z",
+ },
+ {
+ id: "2",
+ name: "Kuliner",
+ slug: "kuliner",
+ active: true,
+ createdAt: "2025-06-16T09:57:16.424Z",
+ updatedAt: "2025-06-16T09:57:16.424Z",
+ },
+ {
+ id: "3",
+ name: "Fashion dan Kecantikan",
+ slug: "fashion_dan_kecantikan",
+ active: true,
+ createdAt: "2025-06-16T09:57:16.442Z",
+ updatedAt: "2025-06-16T09:57:16.442Z",
+ },
+ {
+ id: "4",
+ name: "Otomotif",
+ slug: "otomotif",
+ active: true,
+ createdAt: "2025-06-16T09:57:16.459Z",
+ updatedAt: "2025-06-16T09:57:16.459Z",
+ },
+ {
+ id: "5",
+ name: "Industri Kreatif",
+ slug: "industri_kreatif",
+ active: true,
+ createdAt: "2025-06-16T09:57:16.471Z",
+ updatedAt: "2025-06-16T09:57:16.471Z",
+ },
+ {
+ id: "6",
+ name: "Konstruksi dan Pertukangan",
+ slug: "konstruksi_dan_pertukangan",
+ active: true,
+ createdAt: "2025-06-16T09:57:16.483Z",
+ updatedAt: "2025-06-16T09:57:16.483Z",
+ },
+ {
+ id: "7",
+ name: "Agribisnis dan Pertanian",
+ slug: "agribisnis_dan_pertanian",
+ active: true,
+ createdAt: "2025-06-16T09:57:16.492Z",
+ updatedAt: "2025-06-16T09:57:16.492Z",
+ },
+ {
+ id: "8",
+ name: "Jasa Umum",
+ slug: "jasa_umum",
+ active: true,
+ createdAt: "2025-06-16T09:57:16.502Z",
+ updatedAt: "2025-06-16T09:57:16.502Z",
+ },
+ {
+ id: "9",
+ name: "Edukasi dan Pelatihan",
+ slug: "edukasi_dan_pelatihan",
+ active: true,
+ createdAt: "2025-06-16T09:57:16.517Z",
+ updatedAt: "2025-06-16T09:57:16.517Z",
+ },
+ {
+ id: "10",
+ name: "Keuangan dan Investasi",
+ slug: "keuangan_dan_investasi",
+ active: true,
+ createdAt: "2025-06-16T09:57:16.527Z",
+ updatedAt: "2025-06-16T09:57:16.527Z",
+ },
+ {
+ id: "11",
+ name: "Perdagangan Umum",
+ slug: "perdagangan_umum",
+ active: true,
+ createdAt: "2025-06-16T09:57:16.537Z",
+ updatedAt: "2025-06-16T09:57:16.537Z",
+ },
+ {
+ id: "12",
+ name: "Pariwisata dan Hospitality",
+ slug: "pariwisata_dan_hospitality",
+ active: true,
+ createdAt: "2025-06-16T09:57:16.547Z",
+ updatedAt: "2025-06-16T09:57:16.547Z",
+ },
+];
+
+export default dummyMasterBidangBisnis;
\ No newline at end of file
diff --git a/lib/dummy-data/master-sub-bidang-bisnis.ts b/lib/dummy-data/master-sub-bidang-bisnis.ts
new file mode 100644
index 0000000..ec375da
--- /dev/null
+++ b/lib/dummy-data/master-sub-bidang-bisnis.ts
@@ -0,0 +1,734 @@
+const dummyMasterSubBidangBisnis = [
+ {
+ id: "TEK-01",
+ name: "Software Developer",
+ slug: "software_developer",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.406Z",
+ updatedAt: "2025-06-16T09:57:16.406Z",
+ masterBidangBisnisId: "1",
+ },
+ {
+ id: "TEK-02",
+ name: "Web Developer",
+ slug: "web_developer",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.408Z",
+ updatedAt: "2025-06-16T09:57:16.408Z",
+ masterBidangBisnisId: "1",
+ },
+ {
+ id: "TEK-03",
+ name: "Mobile App Developer",
+ slug: "mobile_app_developer",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.411Z",
+ updatedAt: "2025-06-16T09:57:16.411Z",
+ masterBidangBisnisId: "1",
+ },
+ {
+ id: "TEK-04",
+ name: "Konsultan IT",
+ slug: "konsultan_it",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.413Z",
+ updatedAt: "2025-06-16T09:57:16.413Z",
+ masterBidangBisnisId: "1",
+ },
+ {
+ id: "TEK-05",
+ name: "Digital Marketing",
+ slug: "digital_marketing",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.415Z",
+ updatedAt: "2025-06-16T09:57:16.415Z",
+ masterBidangBisnisId: "1",
+ },
+ {
+ id: "TEK-06",
+ name: "Cybersecurity",
+ slug: "cybersecurity",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.417Z",
+ updatedAt: "2025-06-16T09:57:16.417Z",
+ masterBidangBisnisId: "1",
+ },
+ {
+ id: "TEK-07",
+ name: "AI & Machine Learning Services",
+ slug: "ai_and_machine_learning_services",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.419Z",
+ updatedAt: "2025-06-16T09:57:16.419Z",
+ masterBidangBisnisId: "1",
+ },
+ {
+ id: "TEK-08",
+ name: "Data Analyst/Data Scientist",
+ slug: "data_analyst_data_scientist",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.421Z",
+ updatedAt: "2025-06-16T09:57:16.421Z",
+ masterBidangBisnisId: "1",
+ },
+ {
+ id: "TEK-09",
+ name: "Blockchain Developer",
+ slug: "blockchain_developer",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.423Z",
+ updatedAt: "2025-06-16T09:57:16.423Z",
+ masterBidangBisnisId: "1",
+ },
+ {
+ id: "KUL-01",
+ name: "Restoran",
+ slug: "restoran",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.426Z",
+ updatedAt: "2025-06-16T09:57:16.426Z",
+ masterBidangBisnisId: "2",
+ },
+ {
+ id: "KUL-02",
+ name: "Kafe",
+ slug: "kafe",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.428Z",
+ updatedAt: "2025-06-16T09:57:16.428Z",
+ masterBidangBisnisId: "2",
+ },
+ {
+ id: "KUL-03",
+ name: "Warung Makan",
+ slug: "warung_makan",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.431Z",
+ updatedAt: "2025-06-16T09:57:16.431Z",
+ masterBidangBisnisId: "2",
+ },
+ {
+ id: "KUL-04",
+ name: "Catering",
+ slug: "catering",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.433Z",
+ updatedAt: "2025-06-16T09:57:16.433Z",
+ masterBidangBisnisId: "2",
+ },
+ {
+ id: "KUL-05",
+ name: "Food Truck",
+ slug: "food_truck",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.435Z",
+ updatedAt: "2025-06-16T09:57:16.435Z",
+ masterBidangBisnisId: "2",
+ },
+ {
+ id: "KUL-06",
+ name: "Minuman Kekinian",
+ slug: "minuman_kekinian",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.437Z",
+ updatedAt: "2025-06-16T09:57:16.437Z",
+ masterBidangBisnisId: "2",
+ },
+ {
+ id: "KUL-07",
+ name: "Toko Roti & Kue",
+ slug: "toko_roti_kue",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.438Z",
+ updatedAt: "2025-06-16T09:57:16.438Z",
+ masterBidangBisnisId: "2",
+ },
+ {
+ id: "KUL-08",
+ name: "Supplier Bahan Makanan",
+ slug: "supplier_bahan_makanan",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.440Z",
+ updatedAt: "2025-06-16T09:57:16.440Z",
+ masterBidangBisnisId: "2",
+ },
+ {
+ id: "FAS-01",
+ name: "Pakaian Dewasa & Anak",
+ slug: "pakaian_dewasa_anak",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.444Z",
+ updatedAt: "2025-06-16T09:57:16.444Z",
+ masterBidangBisnisId: "3",
+ },
+ {
+ id: "FAS-02",
+ name: "Butik",
+ slug: "butik",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.445Z",
+ updatedAt: "2025-06-16T09:57:16.445Z",
+ masterBidangBisnisId: "3",
+ },
+ {
+ id: "FAS-03",
+ name: "Desainer Fashion",
+ slug: "desainer_fashion",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.448Z",
+ updatedAt: "2025-06-16T09:57:16.448Z",
+ masterBidangBisnisId: "3",
+ },
+ {
+ id: "FAS-04",
+ name: "Aksesoris & Perhiasan",
+ slug: "aksesoris_perhiasan",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.449Z",
+ updatedAt: "2025-06-16T09:57:16.449Z",
+ masterBidangBisnisId: "3",
+ },
+ {
+ id: "FAS-05",
+ name: "Kosmetik",
+ slug: "kosmetik",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.451Z",
+ updatedAt: "2025-06-16T09:57:16.451Z",
+ masterBidangBisnisId: "3",
+ },
+ {
+ id: "FAS-06",
+ name: "Skincare",
+ slug: "skincare",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.453Z",
+ updatedAt: "2025-06-16T09:57:16.453Z",
+ masterBidangBisnisId: "3",
+ },
+ {
+ id: "FAS-07",
+ name: "Salon Kecantikan",
+ slug: "salon_kecantikan",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.455Z",
+ updatedAt: "2025-06-16T09:57:16.455Z",
+ masterBidangBisnisId: "3",
+ },
+ {
+ id: "FAS-08",
+ name: "Barbershop",
+ slug: "barbershop",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.456Z",
+ updatedAt: "2025-06-16T09:57:16.456Z",
+ masterBidangBisnisId: "3",
+ },
+ {
+ id: "OTO-01",
+ name: "Jual Beli Mobil/Motor",
+ slug: "jual_beli_mobil_motor",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.461Z",
+ updatedAt: "2025-06-16T09:57:16.461Z",
+ masterBidangBisnisId: "4",
+ },
+ {
+ id: "OTO-02",
+ name: "Bengkel Mobil/Motor",
+ slug: "bengkel_mobil_motor",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.463Z",
+ updatedAt: "2025-06-16T09:57:16.463Z",
+ masterBidangBisnisId: "4",
+ },
+ {
+ id: "OTO-03",
+ name: "Aksesori Kendaraan",
+ slug: "aksesori_kendaraan",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.465Z",
+ updatedAt: "2025-06-16T09:57:16.465Z",
+ masterBidangBisnisId: "4",
+ },
+ {
+ id: "OTO-04",
+ name: "Rental Kendaraan",
+ slug: "rental_kendaraan",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.466Z",
+ updatedAt: "2025-06-16T09:57:16.466Z",
+ masterBidangBisnisId: "4",
+ },
+ {
+ id: "OTO-05",
+ name: "Cuci Mobil/Motor",
+ slug: "cuci_mobil_motor",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.468Z",
+ updatedAt: "2025-06-16T09:57:16.468Z",
+ masterBidangBisnisId: "4",
+ },
+ {
+ id: "OTO-06",
+ name: "Spare Part & Mesin Mobil",
+ slug: "spare_part_mesin_mobil",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.469Z",
+ updatedAt: "2025-06-16T09:57:16.469Z",
+ masterBidangBisnisId: "4",
+ },
+ {
+ id: "INK-01",
+ name: "Fotografi & Videografi",
+ slug: "fotografi_videografi",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.472Z",
+ updatedAt: "2025-06-16T09:57:16.472Z",
+ masterBidangBisnisId: "5",
+ },
+ {
+ id: "INK-02",
+ name: "Event Organizer",
+ slug: "event_organizer",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.473Z",
+ updatedAt: "2025-06-16T09:57:16.473Z",
+ masterBidangBisnisId: "5",
+ },
+ {
+ id: "INK-03",
+ name: "Desain Grafis",
+ slug: "desain_grafis",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.475Z",
+ updatedAt: "2025-06-16T09:57:16.475Z",
+ masterBidangBisnisId: "5",
+ },
+ {
+ id: "INK-04",
+ name: "Advertising & Branding",
+ slug: "advertising_branding",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.476Z",
+ updatedAt: "2025-06-16T09:57:16.476Z",
+ masterBidangBisnisId: "5",
+ },
+ {
+ id: "INK-05",
+ name: "Jasa Percetakan",
+ slug: "jasa_percetakan",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.477Z",
+ updatedAt: "2025-06-16T09:57:16.477Z",
+ masterBidangBisnisId: "5",
+ },
+ {
+ id: "INK-06",
+ name: "Dekorasi & Wedding Planner",
+ slug: "dekorasi_wedding_planner",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.480Z",
+ updatedAt: "2025-06-16T09:57:16.480Z",
+ masterBidangBisnisId: "5",
+ },
+ {
+ id: "INK-07",
+ name: "Studio Musik & Produksi",
+ slug: "studio_musik_produksi",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.481Z",
+ updatedAt: "2025-06-16T09:57:16.481Z",
+ masterBidangBisnisId: "5",
+ },
+ {
+ id: "KON-01",
+ name: "Kontraktor Bangunan",
+ slug: "kontraktor_bangunan",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.484Z",
+ updatedAt: "2025-06-16T09:57:16.484Z",
+ masterBidangBisnisId: "6",
+ },
+ {
+ id: "KON-02",
+ name: "Arsitek",
+ slug: "arsitek",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.486Z",
+ updatedAt: "2025-06-16T09:57:16.486Z",
+ masterBidangBisnisId: "6",
+ },
+ {
+ id: "KON-03",
+ name: "Desain Interior",
+ slug: "desain_interior",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.487Z",
+ updatedAt: "2025-06-16T09:57:16.487Z",
+ masterBidangBisnisId: "6",
+ },
+ {
+ id: "KON-04",
+ name: "Supplier Material Bangunan",
+ slug: "supplier_material_bangunan",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.489Z",
+ updatedAt: "2025-06-16T09:57:16.489Z",
+ masterBidangBisnisId: "6",
+ },
+ {
+ id: "KON-05",
+ name: "Tukang & Renovasi Rumah",
+ slug: "tukang_renovasi_rumah",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.490Z",
+ updatedAt: "2025-06-16T09:57:16.490Z",
+ masterBidangBisnisId: "6",
+ },
+ {
+ id: "AGR-01",
+ name: "Perkebunan",
+ slug: "perkebunan",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.493Z",
+ updatedAt: "2025-06-16T09:57:16.493Z",
+ masterBidangBisnisId: "7",
+ },
+ {
+ id: "AGR-02",
+ name: "Peternakan",
+ slug: "peternakan",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.496Z",
+ updatedAt: "2025-06-16T09:57:16.496Z",
+ masterBidangBisnisId: "7",
+ },
+ {
+ id: "AGR-03",
+ name: "Perikanan",
+ slug: "perikanan",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.497Z",
+ updatedAt: "2025-06-16T09:57:16.497Z",
+ masterBidangBisnisId: "7",
+ },
+ {
+ id: "AGR-04",
+ name: "Supplier Bibit & Pupuk",
+ slug: "supplier_bibit_pupuk",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.498Z",
+ updatedAt: "2025-06-16T09:57:16.498Z",
+ masterBidangBisnisId: "7",
+ },
+ {
+ id: "AGR-05",
+ name: "Hasil Tani Organik",
+ slug: "hasil_tani_organik",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.500Z",
+ updatedAt: "2025-06-16T09:57:16.500Z",
+ masterBidangBisnisId: "7",
+ },
+ {
+ id: "AGR-06",
+ name: "Alat & Mesin Pertanian",
+ slug: "alat_mesin_pertanian",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.501Z",
+ updatedAt: "2025-06-16T09:57:16.501Z",
+ masterBidangBisnisId: "7",
+ },
+ {
+ id: "JAS-01",
+ name: "Jasa Kebersihan",
+ slug: "jasa_kebersihan",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.504Z",
+ updatedAt: "2025-06-16T09:57:16.504Z",
+ masterBidangBisnisId: "8",
+ },
+ {
+ id: "JAS-02",
+ name: "Laundry",
+ slug: "laundry",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.505Z",
+ updatedAt: "2025-06-16T09:57:16.505Z",
+ masterBidangBisnisId: "8",
+ },
+ {
+ id: "JAS-03",
+ name: "Penitipan Anak",
+ slug: "penitipan_anak",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.506Z",
+ updatedAt: "2025-06-16T09:57:16.506Z",
+ masterBidangBisnisId: "8",
+ },
+ {
+ id: "JAS-04",
+ name: "Jasa Keamanan",
+ slug: "jasa_keamanan",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.508Z",
+ updatedAt: "2025-06-16T09:57:16.508Z",
+ masterBidangBisnisId: "8",
+ },
+ {
+ id: "JAS-05",
+ name: "Jasa Pengiriman/Logistik",
+ slug: "jasa_pengiriman_logistik",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.511Z",
+ updatedAt: "2025-06-16T09:57:16.511Z",
+ masterBidangBisnisId: "8",
+ },
+ {
+ id: "JAS-06",
+ name: "Jasa Ekspedisi",
+ slug: "jasa_ekspedisi",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.513Z",
+ updatedAt: "2025-06-16T09:57:16.513Z",
+ masterBidangBisnisId: "8",
+ },
+ {
+ id: "JAS-07",
+ name: "Konsultan Bisnis",
+ slug: "konsultan_bisnis",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.514Z",
+ updatedAt: "2025-06-16T09:57:16.514Z",
+ masterBidangBisnisId: "8",
+ },
+ {
+ id: "JAS-08",
+ name: "Jasa Hukum/Legal",
+ slug: "jasa_hukum_legal",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.516Z",
+ updatedAt: "2025-06-16T09:57:16.516Z",
+ masterBidangBisnisId: "8",
+ },
+ {
+ id: "EDU-01",
+ name: "Bimbingan Belajar",
+ slug: "bimbingan_belajar",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.518Z",
+ updatedAt: "2025-06-16T09:57:16.518Z",
+ masterBidangBisnisId: "9",
+ },
+ {
+ id: "EDU-02",
+ name: "Kursus Bahasa",
+ slug: "kursus_bahasa",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.520Z",
+ updatedAt: "2025-06-16T09:57:16.520Z",
+ masterBidangBisnisId: "9",
+ },
+ {
+ id: "EDU-03",
+ name: "Pelatihan Digital/Skill",
+ slug: "pelatihan_digital_skill",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.521Z",
+ updatedAt: "2025-06-16T09:57:16.521Z",
+ masterBidangBisnisId: "9",
+ },
+ {
+ id: "EDU-04",
+ name: "LPK (Lembaga Pelatihan Kerja)",
+ slug: "lpk_lembaga_pelatihan_kerja",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.523Z",
+ updatedAt: "2025-06-16T09:57:16.523Z",
+ masterBidangBisnisId: "9",
+ },
+ {
+ id: "EDU-05",
+ name: "Homeschooling",
+ slug: "homeschooling",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.525Z",
+ updatedAt: "2025-06-16T09:57:16.525Z",
+ masterBidangBisnisId: "9",
+ },
+ {
+ id: "KEU-01",
+ name: "Koperasi",
+ slug: "koperasi",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.529Z",
+ updatedAt: "2025-06-16T09:57:16.529Z",
+ masterBidangBisnisId: "10",
+ },
+ {
+ id: "KEU-02",
+ name: "FinTEKh",
+ slug: "finTEKh",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.530Z",
+ updatedAt: "2025-06-16T09:57:16.530Z",
+ masterBidangBisnisId: "10",
+ },
+ {
+ id: "KEU-03",
+ name: "Konsultan Keuangan",
+ slug: "konsultan_keuangan",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.531Z",
+ updatedAt: "2025-06-16T09:57:16.531Z",
+ masterBidangBisnisId: "10",
+ },
+ {
+ id: "KEU-04",
+ name: "Investasi & Saham",
+ slug: "investasi_saham",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.532Z",
+ updatedAt: "2025-06-16T09:57:16.532Z",
+ masterBidangBisnisId: "10",
+ },
+ {
+ id: "KEU-05",
+ name: "Asuransi",
+ slug: "asuransi",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.534Z",
+ updatedAt: "2025-06-16T09:57:16.534Z",
+ masterBidangBisnisId: "10",
+ },
+ {
+ id: "KEU-06",
+ name: "Akuntan Publik",
+ slug: "akuntan_publik",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.535Z",
+ updatedAt: "2025-06-16T09:57:16.535Z",
+ masterBidangBisnisId: "10",
+ },
+ {
+ id: "PER-01",
+ name: "Toko Kelontong",
+ slug: "toko_kelontong",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.538Z",
+ updatedAt: "2025-06-16T09:57:16.538Z",
+ masterBidangBisnisId: "11",
+ },
+ {
+ id: "PER-02",
+ name: "Minimarket",
+ slug: "minimarket",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.540Z",
+ updatedAt: "2025-06-16T09:57:16.540Z",
+ masterBidangBisnisId: "11",
+ },
+ {
+ id: "PER-03",
+ name: "Grosir & Distributor",
+ slug: "grosir_distributor",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.541Z",
+ updatedAt: "2025-06-16T09:57:16.541Z",
+ masterBidangBisnisId: "11",
+ },
+ {
+ id: "PER-04",
+ name: "Dropshipper & Reseller",
+ slug: "dropshipper_reseller",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.543Z",
+ updatedAt: "2025-06-16T09:57:16.543Z",
+ masterBidangBisnisId: "11",
+ },
+ {
+ id: "PER-05",
+ name: "Marketplace & E-commerce",
+ slug: "marketplace_e_commerce",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.544Z",
+ updatedAt: "2025-06-16T09:57:16.544Z",
+ masterBidangBisnisId: "11",
+ },
+ {
+ id: "PER-06",
+ name: "Supplier Produk",
+ slug: "supplier_produk",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.546Z",
+ updatedAt: "2025-06-16T09:57:16.546Z",
+ masterBidangBisnisId: "11",
+ },
+ {
+ id: "PAR-01",
+ name: "Agen Travel",
+ slug: "agen_travel",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.549Z",
+ updatedAt: "2025-06-16T09:57:16.549Z",
+ masterBidangBisnisId: "12",
+ },
+ {
+ id: "PAR-02",
+ name: "Tour Guide",
+ slug: "tour_guide",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.550Z",
+ updatedAt: "2025-06-16T09:57:16.550Z",
+ masterBidangBisnisId: "12",
+ },
+ {
+ id: "PAR-03",
+ name: "Villa & Penginapan",
+ slug: "villa_penginapan",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.551Z",
+ updatedAt: "2025-06-16T09:57:16.551Z",
+ masterBidangBisnisId: "12",
+ },
+ {
+ id: "PAR-04",
+ name: "Homestay",
+ slug: "homestay",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.552Z",
+ updatedAt: "2025-06-16T09:57:16.552Z",
+ masterBidangBisnisId: "12",
+ },
+ {
+ id: "PAR-05",
+ name: "Hotel",
+ slug: "hotel",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.554Z",
+ updatedAt: "2025-06-16T09:57:16.554Z",
+ masterBidangBisnisId: "12",
+ },
+ {
+ id: "PAR-06",
+ name: "Sewa Motor/Travel",
+ slug: "sewa_motor_travel",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.555Z",
+ updatedAt: "2025-06-16T09:57:16.555Z",
+ masterBidangBisnisId: "12",
+ },
+ {
+ id: "PAR-07",
+ name: "Sovenir & Oleh-Oleh",
+ slug: "sovenir_oleh_oleh",
+ isActive: true,
+ createdAt: "2025-06-16T09:57:16.557Z",
+ updatedAt: "2025-06-16T09:57:16.557Z",
+ masterBidangBisnisId: "12",
+ },
+];
+
+
+export default dummyMasterSubBidangBisnis;
diff --git a/lib/index.ts b/lib/index.ts
new file mode 100644
index 0000000..e69de29
diff --git a/screens/Authentication/LoginView.tsx b/screens/Authentication/LoginView.tsx
index 41bc958..83fd284 100644
--- a/screens/Authentication/LoginView.tsx
+++ b/screens/Authentication/LoginView.tsx
@@ -30,8 +30,8 @@ export default function LoginView() {
const id = randomAlfabet + randomNumber + fixNumber;
console.log("login user id :", id);
- router.navigate("/verification");
- // router.navigate(`/(application)/profile/${id}`);
+ // router.navigate("/verification");
+ router.navigate(`/(application)/(user)/profile/${id}`);
// router.navigate("/(application)/home");
// router.navigate(`/(application)/profile/${id}/edit`);
}
@@ -55,7 +55,7 @@ export default function LoginView() {
fontSize: 10,
fontWeight: "thin",
fontStyle: "italic",
- color: MainColor.white,
+ color: MainColor.white_gray,
}}
>
powered by muku.id
diff --git a/screens/Profile/profilSection.tsx b/screens/Profile/profilSection.tsx
index 9268286..1bca730 100644
--- a/screens/Profile/profilSection.tsx
+++ b/screens/Profile/profilSection.tsx
@@ -1,4 +1,3 @@
-/* eslint-disable @typescript-eslint/no-unused-vars */
import { BaseBox, Grid, Spacing, TextCustom } from "@/components";
import { MainColor } from "@/constants/color-palet";
import { ICON_SIZE_SMALL } from "@/constants/constans-value";
diff --git a/styles/global-styles.ts b/styles/global-styles.ts
index cf9ed92..d79c2f1 100644
--- a/styles/global-styles.ts
+++ b/styles/global-styles.ts
@@ -44,7 +44,7 @@ export const GStyles = StyleSheet.create({
// TEXT & LABEL
textLabel: {
fontSize: TEXT_SIZE_MEDIUM,
- color: MainColor.white,
+ color: MainColor.white_gray,
fontWeight: "normal",
},
@@ -123,7 +123,7 @@ export const GStyles = StyleSheet.create({
fontWeight: "500",
},
activeTabLabel: {
- color: MainColor.white,
+ color: MainColor.white_gray,
fontWeight: "600",
},
activeIndicator: {