Fix andorid

This commit is contained in:
2026-03-27 17:59:13 +08:00
parent 76deec9c53
commit 6fb3b229c3
7 changed files with 132 additions and 33 deletions

7
.qwen/settings.json.orig Normal file
View File

@@ -0,0 +1,7 @@
{
"permissions": {
"allow": [
"Bash(git add *)"
]
}
}

View File

@@ -30,7 +30,7 @@ export default function AppHeader({
? isIOS26Plus ? isIOS26Plus
? insets.top - 10 ? insets.top - 10
: insets.top : insets.top
: 10; : 40;
const paddingBottom = Platform.OS === "ios" ? 8 : 13; const paddingBottom = Platform.OS === "ios" ? 8 : 13;

View File

@@ -203,6 +203,10 @@
A6E85C04CEFE4EB1BEC42A8F /* Remove signature files (Xcode workaround) */, A6E85C04CEFE4EB1BEC42A8F /* Remove signature files (Xcode workaround) */,
90185735FF1241C998928089 /* Remove signature files (Xcode workaround) */, 90185735FF1241C998928089 /* Remove signature files (Xcode workaround) */,
7FC9CE1604F2440EBA9E61D6 /* Remove signature files (Xcode workaround) */, 7FC9CE1604F2440EBA9E61D6 /* Remove signature files (Xcode workaround) */,
3D825348A9EE47AEB9FEB9FC /* Remove signature files (Xcode workaround) */,
F18AFF842FD14072824B885B /* Remove signature files (Xcode workaround) */,
CEB288FB251945499C04360F /* Remove signature files (Xcode workaround) */,
EE74CCF78BB449818616D056 /* Remove signature files (Xcode workaround) */,
); );
buildRules = ( buildRules = (
); );
@@ -1355,6 +1359,74 @@
rm -rf \"$CONFIGURATION_BUILD_DIR/MapLibre.xcframework-ios.signature\"; rm -rf \"$CONFIGURATION_BUILD_DIR/MapLibre.xcframework-ios.signature\";
"; ";
}; };
3D825348A9EE47AEB9FEB9FC /* Remove signature files (Xcode workaround) */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
name = "Remove signature files (Xcode workaround)";
inputPaths = (
);
outputPaths = (
);
shellPath = /bin/sh;
shellScript = "
echo \"Remove signature files (Xcode workaround)\";
rm -rf \"$CONFIGURATION_BUILD_DIR/MapLibre.xcframework-ios.signature\";
";
};
F18AFF842FD14072824B885B /* Remove signature files (Xcode workaround) */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
name = "Remove signature files (Xcode workaround)";
inputPaths = (
);
outputPaths = (
);
shellPath = /bin/sh;
shellScript = "
echo \"Remove signature files (Xcode workaround)\";
rm -rf \"$CONFIGURATION_BUILD_DIR/MapLibre.xcframework-ios.signature\";
";
};
CEB288FB251945499C04360F /* Remove signature files (Xcode workaround) */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
name = "Remove signature files (Xcode workaround)";
inputPaths = (
);
outputPaths = (
);
shellPath = /bin/sh;
shellScript = "
echo \"Remove signature files (Xcode workaround)\";
rm -rf \"$CONFIGURATION_BUILD_DIR/MapLibre.xcframework-ios.signature\";
";
};
EE74CCF78BB449818616D056 /* Remove signature files (Xcode workaround) */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
name = "Remove signature files (Xcode workaround)";
inputPaths = (
);
outputPaths = (
);
shellPath = /bin/sh;
shellScript = "
echo \"Remove signature files (Xcode workaround)\";
rm -rf \"$CONFIGURATION_BUILD_DIR/MapLibre.xcframework-ios.signature\";
";
};
/* End PBXShellScriptBuildPhase section */ /* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */

View File

@@ -33,7 +33,10 @@ export function EventDetailQRCode({
const deepLinkURL = `${BASE_URL}/event/${id}/confirmation?userId=${userId}`; const deepLinkURL = `${BASE_URL}/event/${id}/confirmation?userId=${userId}`;
// Toggle antara HTTPS link dan custom scheme // Toggle antara HTTPS link dan custom scheme
const qrValue = useHttpsLink ? httpsLink : deepLinkURL; // const qrValue = useHttpsLink ? httpsLink : deepLinkURL;
const qrValue = deepLinkURL;
return ( return (
<BaseBox> <BaseBox>
@@ -46,7 +49,7 @@ export function EventDetailQRCode({
{qrValue} {qrValue}
</TextCustom> </TextCustom>
<Spacing /> <Spacing />
<StackCustom direction="row" gap="sm"> {/* <StackCustom direction="row" gap="sm">
<ButtonCustom <ButtonCustom
onPress={() => setUseHttpsLink(true)} onPress={() => setUseHttpsLink(true)}
backgroundColor={useHttpsLink ? MainColor.yellow : "transparent"} backgroundColor={useHttpsLink ? MainColor.yellow : "transparent"}
@@ -69,13 +72,13 @@ export function EventDetailQRCode({
> >
Custom Scheme Custom Scheme
</ButtonCustom> </ButtonCustom>
</StackCustom> </StackCustom> */}
<Spacing /> {/* <Spacing />
<TextCustom color="gray" align="center" size={"small"}> <TextCustom color="gray" align="center" size={"small"}>
{useHttpsLink {useHttpsLink
? "✅ Testing Universal Links/App Links (butuh .well-known config)" ? "✅ Testing Universal Links/App Links (butuh .well-known config)"
: "🔧 Testing langsung (tanpa domain verification)"} : "🔧 Testing langsung (tanpa domain verification)"}
</TextCustom> </TextCustom> */}
</BaseBox> </BaseBox>
); );
} }

View File

@@ -11,7 +11,13 @@ import { openBrowser } from "@/utils/openBrower";
import versionBadge from "@/utils/viersionBadge"; import versionBadge from "@/utils/viersionBadge";
import { Redirect } from "expo-router"; import { Redirect } from "expo-router";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import { KeyboardAvoidingView, Platform, RefreshControl, Text, View } from "react-native"; import {
KeyboardAvoidingView,
Platform,
RefreshControl,
Text,
View,
} from "react-native";
import { parsePhoneNumber } from "libphonenumber-js"; import { parsePhoneNumber } from "libphonenumber-js";
import Toast from "react-native-toast-message"; import Toast from "react-native-toast-message";
import EULASection from "./EULASection"; import EULASection from "./EULASection";
@@ -19,7 +25,8 @@ import EULASection from "./EULASection";
export default function LoginView() { export default function LoginView() {
const url = BASE_URL; const url = BASE_URL;
const [version, setVersion] = useState<string>(""); const [version, setVersion] = useState<string>("");
const [selectedCountry, setSelectedCountry] = useState<CountryData>(DEFAULT_COUNTRY); const [selectedCountry, setSelectedCountry] =
useState<CountryData>(DEFAULT_COUNTRY);
const [phoneNumber, setPhoneNumber] = useState<string>(""); const [phoneNumber, setPhoneNumber] = useState<string>("");
const [loading, setLoading] = useState<boolean>(false); const [loading, setLoading] = useState<boolean>(false);
const [refreshing, setRefreshing] = useState<boolean>(false); const [refreshing, setRefreshing] = useState<boolean>(false);
@@ -160,19 +167,21 @@ export default function LoginView() {
<Spacing height={5} /> <Spacing height={5} />
</View> </View>
<Spacing height={50} /> <Spacing height={50} />
<Text {version && (
style={{ <Text
position: "absolute", style={{
bottom: 35, position: "absolute",
right: 50, bottom: 35,
fontSize: 10, right: 50,
fontWeight: "thin", fontSize: 10,
fontStyle: "italic", fontWeight: "thin",
color: MainColor.white_gray, fontStyle: "italic",
}} color: MainColor.white_gray,
> }}
{version} | powered by muku.id >
</Text> powered by muku.id
</Text>
)}
</View> </View>
<Spacing height={20} /> <Spacing height={20} />

View File

@@ -1,15 +1,17 @@
import { ClickableCustom, TextCustom } from "@/components"; import { CenterCustom, ClickableCustom, TextCustom } from "@/components";
import Spacing from "@/components/_ShareComponent/Spacing"; import Spacing from "@/components/_ShareComponent/Spacing";
import { router } from "expo-router"; import { router } from "expo-router";
import { View } from "react-native"; import { View } from "react-native";
import Icon from "react-native-vector-icons/FontAwesome"; import Icon from "react-native-vector-icons/FontAwesome";
import { stylesHome } from "./homeViewStyle"; import { stylesHome } from "./homeViewStyle";
import _ from "lodash";
export default function Home_BottomFeatureSection({ export default function Home_BottomFeatureSection({
listData, listData,
}: { }: {
listData: any[] | null; listData: any[] | null;
}) { }) {
console.log("listData", JSON.stringify(listData, null, 2));
return ( return (
<> <>
<ClickableCustom onPress={() => router.push("/job")}> <ClickableCustom onPress={() => router.push("/job")}>
@@ -24,17 +26,23 @@ export default function Home_BottomFeatureSection({
<View style={stylesHome.vacancyList}> <View style={stylesHome.vacancyList}>
{/* Vacancy Item 1 */} {/* Vacancy Item 1 */}
{listData?.map((item: any, index: number) => ( {_.isEmpty(listData) ? (
<View style={stylesHome.vacancyItem} key={index}> <CenterCustom style={{ paddingBlock: 50 }}>
<View style={stylesHome.vacancyDetails}> <TextCustom>Lowongan pekerjaan belum tersedia</TextCustom>
<TextCustom bold color="yellow" truncate size="large"> </CenterCustom>
{item.title} ) : (
</TextCustom> listData?.map((item: any, index: number) => (
<Spacing height={5} /> <View style={stylesHome.vacancyItem} key={index}>
<TextCustom truncate={2}>{item.deskripsi}</TextCustom> <View style={stylesHome.vacancyDetails}>
<TextCustom bold color="yellow" truncate size="large">
{item.title}
</TextCustom>
<Spacing height={5} />
<TextCustom truncate={2}>{item.deskripsi}</TextCustom>
</View>
</View> </View>
</View> ))
))} )}
</View> </View>
</View> </View>
</ClickableCustom> </ClickableCustom>