Merge commit '06eca9ed8ae405b2b0529fe8cfbc195af4eb4844' into develop

This commit is contained in:
harukin-expo-dev-env 2024-08-23 16:58:51 +00:00
commit 51a75a6058
2 changed files with 26 additions and 7 deletions

11
Apps.js
View File

@ -11,9 +11,9 @@ import "./components/ActionSheetComponents/sheets";
export function AppContainer() {
const Tab = createBottomTabNavigator();
const { areaInfo, areaIconBadgeText } = useAreaInfo();
const { areaInfo, areaIconBadgeText, isInfo } = useAreaInfo();
const navigationRef = React.useRef();
const getTabProps = (name, label, icon, iconFamily, tabBarBadge) => ({
const getTabProps = (name, label, icon, iconFamily, tabBarBadge, style) => ({
name,
options: {
tabBarLabel: label,
@ -21,6 +21,7 @@ export function AppContainer() {
gestureEnabled: true,
tabBarIcon: initIcon(icon, iconFamily),
tabBarBadge,
tabBarBadgeStyle: style,
},
});
return (
@ -45,7 +46,11 @@ export function AppContainer() {
"運行情報",
"train",
"Ionicons",
areaInfo ? areaIconBadgeText : undefined
areaInfo ? areaIconBadgeText : undefined,
isInfo && {
backgroundColor: "#00b8ff",
color: "white",
}
)}
children={(props) => <TNDView {...props} />}
/>

View File

@ -316,6 +316,7 @@ export const AreaInfoProvider = ({ children }) => {
const [areaInfo, setAreaInfo] = useState("");
const [areaIconBadgeText, setAreaIconBadgeText] = useState("");
const [areaStationID, setAreaStationID] = useState([]);
const [isInfo, setIsInfo] = useState(false);
const getAreaData = () => {
fetch(
"https://script.google.com/macros/s/AKfycbz80LcaEUrhnlEsLkJy0LG2IRO3DBVQhfNmN1d_0f_HvtsujNQpxM90SrV9yKWH_JG1Ww/exec"
@ -326,28 +327,41 @@ export const AreaInfoProvider = ({ children }) => {
.then((d) => d.json())
.then((d) => {
if (!d.data) return;
const text = d.data
const lineInfo = d.data.filter((e) => e.area != "genelic");
const genelicInfo = d.data.filter((e) => e.area == "genelic");
const text = lineInfo
.filter((e) => e.status)
.map((e) => {
return `${areaStationPair[e.area].id}`;
});
let stationIDList = [];
d.data
lineInfo
.filter((e) => e.status)
.forEach((e) => {
stationIDList = stationIDList.concat(
areaStationPair[e.area].stationID
);
});
const info = genelicInfo[0].status.includes("nodelay") ? true : false;
setIsInfo(info);
setAreaStationID(stationIDList);
setAreaIconBadgeText(text.length == 0 ? "!" : text.join(","));
setAreaIconBadgeText(
text.length == 0 ? (info ? "i" : "!") : text.join(",")
);
});
};
useEffect(getAreaData, []);
useInterval(getAreaData, 60000); //60秒毎に全在線列車取得
return (
<AreaInfoContext.Provider
value={{ areaInfo, setAreaInfo, areaIconBadgeText, areaStationID }}
value={{
areaInfo,
setAreaInfo,
areaIconBadgeText,
areaStationID,
isInfo,
setIsInfo,
}}
>
{children}
</AreaInfoContext.Provider>