Deskripsi:

Fix: event beranda dan status > tampilan
Feature: create event dan halaman detail status
Fix: Basebox: Hide safearea kalau ada tabs
Fix: TextCustom: Tambah size xlarge
Fix: ScrollCustom penambhan props value

# No Issue
This commit is contained in:
2025-07-18 16:30:56 +08:00
parent b8b1efc71e
commit f9e96aa077
12 changed files with 346 additions and 70 deletions

View File

@@ -1,10 +1,22 @@
import { AccentColor } from "@/constants/color-palet";
import { PADDING_EXTRA_SMALL, PADDING_MEDIUM, PADDING_SMALL } from "@/constants/constans-value";
import { StyleProp, TouchableHighlight, View, ViewStyle } from "react-native";
import {
PADDING_EXTRA_SMALL,
PADDING_MEDIUM,
PADDING_SMALL,
} from "@/constants/constans-value";
import { Href, router } from "expo-router";
import {
StyleProp,
TouchableHighlight,
TouchableOpacity,
View,
ViewStyle,
} from "react-native";
interface BaseBoxProps {
children: React.ReactNode;
style?: StyleProp<ViewStyle>;
href?: Href;
onPress?: () => void;
marginBottom?: number;
padding?: number;
@@ -15,16 +27,19 @@ interface BaseBoxProps {
export default function BaseBox({
children,
style,
href,
onPress,
marginBottom = PADDING_MEDIUM,
paddingBlock = PADDING_EXTRA_SMALL,
paddingBlock = PADDING_MEDIUM,
paddingInline = PADDING_SMALL,
}: BaseBoxProps) {
return (
<>
{onPress ? (
<TouchableHighlight
onPress={onPress}
{onPress || href ? (
<TouchableOpacity
activeOpacity={0.7}
onPress={href ? () => router.navigate(href) : onPress}
style={[
{
backgroundColor: AccentColor.darkblue,
@@ -37,10 +52,9 @@ export default function BaseBox({
},
style,
]}
// activeOpacity={0.7}
>
<View>{children}</View>
</TouchableHighlight>
</TouchableOpacity>
) : (
<View
style={[

View File

@@ -6,6 +6,7 @@ import ButtonCustom from "../Button/ButtonCustom";
interface ButtonData {
id: string | number;
label: string;
value: string;
}
interface ScrollableCustomProps {
@@ -27,7 +28,7 @@ const ScrollableCustom = ({
style={styles.scrollView}
>
{data.map((item) => {
const isActive = activeId === item.id;
const isActive = activeId === item.value;
return (
<ButtonCustom

View File

@@ -3,6 +3,7 @@ import {
TEXT_SIZE_LARGE,
TEXT_SIZE_MEDIUM,
TEXT_SIZE_SMALL,
TEXT_SIZE_XLARGE,
} from "@/constants/constans-value";
import React from "react";
import {
@@ -21,7 +22,7 @@ interface TextCustomProps {
style?: StyleProp<TextStyle>;
bold?: boolean;
semiBold?: boolean;
size?: "default" | "large" | "small";
size?: "default" | "large" | "small" | "xlarge";
color?: "default" | "yellow" | "red" | "gray" | "green" | "black"
align?: TextAlign; // Prop untuk alignment
truncate?: boolean | number;
@@ -51,6 +52,7 @@ const TextCustom: React.FC<TextCustomProps> = ({
// Size
if (size === "large") selectedStyles.push(styles.large);
else if (size === "xlarge") selectedStyles.push(styles.xlarge);
else if (size === "small") selectedStyles.push(styles.small);
// Color
@@ -113,11 +115,14 @@ export const styles = StyleSheet.create({
fontFamily: "Poppins-SemiBold",
fontWeight: "500",
},
small: {
fontSize: TEXT_SIZE_SMALL,
},
large: {
fontSize: TEXT_SIZE_LARGE,
},
small: {
fontSize: TEXT_SIZE_SMALL,
xlarge: {
fontSize: TEXT_SIZE_XLARGE,
},
yellow: {
color: MainColor.yellow,

View File

@@ -20,15 +20,23 @@ interface ViewWrapperProps {
headerComponent?: React.ReactNode;
footerComponent?: React.ReactNode;
floatingButton?: React.ReactNode;
hideFooter?: boolean;
style?: StyleProp<ViewStyle>;
}
/**
*
* @param hideFooter
* @returns meneyembunyikan footer ketika menggunakan tabs (misal: bottom tab)
*/
const ViewWrapper = ({
children,
withBackground = false,
headerComponent,
footerComponent,
floatingButton,
hideFooter = false,
style,
}: ViewWrapperProps) => {
const assetBackground = require("../../assets/images/main-background.png");
@@ -78,10 +86,12 @@ const ViewWrapper = ({
{footerComponent}
</SafeAreaView>
) : (
<SafeAreaView
edges={["bottom"]}
style={{ backgroundColor: MainColor.darkblue }}
/>
hideFooter ? null : (
<SafeAreaView
edges={["bottom"]}
style={{ backgroundColor: MainColor.darkblue }}
/>
)
)}
{/* Floating Component (misal: FAB) */}