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

View File

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