From 570a55f4307025eaad90d9bf617e82fa87cf24a1 Mon Sep 17 00:00:00 2001 From: harukin-expo-dev-env Date: Thu, 3 Jul 2025 12:08:43 +0000 Subject: [PATCH] =?UTF-8?q?pushtoken=E3=82=92=E9=80=81=E4=BF=A1=E3=81=97?= =?UTF-8?q?=E3=81=A6true=E3=81=98=E3=82=83=E3=81=AA=E3=81=8B=E3=81=A3?= =?UTF-8?q?=E3=81=9F=E3=82=89webview=E3=81=8C=E9=96=8B=E3=81=91=E3=82=8C?= =?UTF-8?q?=E3=81=AA=E3=81=84=E3=82=88=E3=81=86=E3=81=AB=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EachTrainInfoCore/HeaderText.tsx | 8 +++++++- menu.js | 4 ++-- stateBox/useTrainMenu.js | 20 +++++++++++++++++++ 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/components/ActionSheetComponents/EachTrainInfoCore/HeaderText.tsx b/components/ActionSheetComponents/EachTrainInfoCore/HeaderText.tsx index 5500354..69d0663 100644 --- a/components/ActionSheetComponents/EachTrainInfoCore/HeaderText.tsx +++ b/components/ActionSheetComponents/EachTrainInfoCore/HeaderText.tsx @@ -9,6 +9,8 @@ import { TrainViewIcon } from "./trainViewIcon"; import { OneManText } from "./HeaderTextParts/OneManText"; import { customTrainDataDetector } from "@/components/custom-train-data"; import { InfogramText } from "@/components/ActionSheetComponents/EachTrainInfoCore/HeaderTextParts/InfogramText"; +import { useTrainMenu } from "@/stateBox/useTrainMenu"; +import { useNotification } from "@/stateBox/useNotifications"; type Props = { data: { trainNum: string; limited: string }; @@ -42,6 +44,9 @@ export const HeaderText: FC = ({ }) => { const { limited, trainNum } = data; + const { updatePermission } = useTrainMenu(); + const {expoPushToken} = useNotification(); + // 列車名、種別、フォントの取得 const [typeName, trainName, fontAvailable, isOneMan, infogram] = useMemo(() => { @@ -124,11 +129,12 @@ export const HeaderText: FC = ({ style={{ borderRadius: 5, flexDirection: "row", alignItems: "center" }} onLongPress={() => { navigate("generalWebView", { - uri: "https://jr-shikoku-data-post-system.pages.dev?trainNum=" + trainNum, + uri: "https://jr-shikoku-data-post-system.pages.dev?trainNum=" + trainNum + "&token=" + expoPushToken, useExitButton: false }); SheetManager.hide("EachTrainInfo"); }} + disabled={!updatePermission} > { - scrollRef.current.scrollTo({ + scrollRef?.current.scrollTo({ y: mapHeight > 80 ? mapHeight - 80 : 0, animated: bool, }); }; const goToMap = () => { - scrollRef.current.scrollTo({ + scrollRef?.current.scrollTo({ y: 0, animated: true, }); diff --git a/stateBox/useTrainMenu.js b/stateBox/useTrainMenu.js index c4d8467..f169fc0 100644 --- a/stateBox/useTrainMenu.js +++ b/stateBox/useTrainMenu.js @@ -5,6 +5,8 @@ import { ASCore } from "../storageControl"; import { getStationList2 } from "../lib/getStationList"; import { injectJavascriptData } from "../lib/webViewInjectjavascript"; +import { useNotification } from "../stateBox/useNotifications"; + const initialState = { selectedLine: undefined, setSelectedLine: () => {}, @@ -28,6 +30,8 @@ const initialState = { setTrainInfo: () => {}, trainMenu: "true", setTrainMenu: () => {}, + updatePermission : false, + setUpdatePermission : () => {}, injectJavascript: "", }; @@ -38,6 +42,7 @@ export const useTrainMenu = () => { }; export const TrainMenuProvider = ({ children }) => { + const { expoPushToken } = useNotification(); const [selectedLine, setSelectedLine] = useState(undefined); const [mapsStationData, setMapsStationData] = useState(undefined); useEffect(() => { @@ -50,6 +55,19 @@ export const TrainMenuProvider = ({ children }) => { const [stationMenu, setStationMenu] = useState(undefined); const [LoadError, setLoadError] = useState(false); + //更新権限所有確認 + const [updatePermission, setUpdatePermission] = useState(false); + useEffect(()=>{ + fetch("https://n8n.haruk.in/webhook/data-edit-permission?token=" + expoPushToken).then((res)=>res.json()) + .then((res)=>{ + if(res.data == true){ + setUpdatePermission(true); + }else{ + setUpdatePermission(false); + } + }) + }, [expoPushToken]) + //列車情報表示関連 const [trainInfo, setTrainInfo] = useState({ trainNum: undefined, @@ -106,6 +124,8 @@ export const TrainMenuProvider = ({ children }) => { setTrainInfo, trainMenu, setTrainMenu, + updatePermission, + setUpdatePermission, injectJavascript, }} >