pushtokenを送信してtrueじゃなかったらwebviewが開けれないように修正

This commit is contained in:
harukin-expo-dev-env 2025-07-03 12:08:43 +00:00
parent c98407527b
commit 570a55f430
3 changed files with 29 additions and 3 deletions

View File

@ -9,6 +9,8 @@ import { TrainViewIcon } from "./trainViewIcon";
import { OneManText } from "./HeaderTextParts/OneManText"; import { OneManText } from "./HeaderTextParts/OneManText";
import { customTrainDataDetector } from "@/components/custom-train-data"; import { customTrainDataDetector } from "@/components/custom-train-data";
import { InfogramText } from "@/components/ActionSheetComponents/EachTrainInfoCore/HeaderTextParts/InfogramText"; import { InfogramText } from "@/components/ActionSheetComponents/EachTrainInfoCore/HeaderTextParts/InfogramText";
import { useTrainMenu } from "@/stateBox/useTrainMenu";
import { useNotification } from "@/stateBox/useNotifications";
type Props = { type Props = {
data: { trainNum: string; limited: string }; data: { trainNum: string; limited: string };
@ -42,6 +44,9 @@ export const HeaderText: FC<Props> = ({
}) => { }) => {
const { limited, trainNum } = data; const { limited, trainNum } = data;
const { updatePermission } = useTrainMenu();
const {expoPushToken} = useNotification();
// 列車名、種別、フォントの取得 // 列車名、種別、フォントの取得
const [typeName, trainName, fontAvailable, isOneMan, infogram] = const [typeName, trainName, fontAvailable, isOneMan, infogram] =
useMemo(() => { useMemo(() => {
@ -124,11 +129,12 @@ export const HeaderText: FC<Props> = ({
style={{ borderRadius: 5, flexDirection: "row", alignItems: "center" }} style={{ borderRadius: 5, flexDirection: "row", alignItems: "center" }}
onLongPress={() => { onLongPress={() => {
navigate("generalWebView", { 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 useExitButton: false
}); });
SheetManager.hide("EachTrainInfo"); SheetManager.hide("EachTrainInfo");
}} }}
disabled={!updatePermission}
> >
<Text <Text
style={{ style={{

View File

@ -54,13 +54,13 @@ export default function Menu(props) {
}, []); }, []);
const mapsRef = useRef(null); const mapsRef = useRef(null);
const returnToTop = (bool = true) => { const returnToTop = (bool = true) => {
scrollRef.current.scrollTo({ scrollRef?.current.scrollTo({
y: mapHeight > 80 ? mapHeight - 80 : 0, y: mapHeight > 80 ? mapHeight - 80 : 0,
animated: bool, animated: bool,
}); });
}; };
const goToMap = () => { const goToMap = () => {
scrollRef.current.scrollTo({ scrollRef?.current.scrollTo({
y: 0, y: 0,
animated: true, animated: true,
}); });

View File

@ -5,6 +5,8 @@ import { ASCore } from "../storageControl";
import { getStationList2 } from "../lib/getStationList"; import { getStationList2 } from "../lib/getStationList";
import { injectJavascriptData } from "../lib/webViewInjectjavascript"; import { injectJavascriptData } from "../lib/webViewInjectjavascript";
import { useNotification } from "../stateBox/useNotifications";
const initialState = { const initialState = {
selectedLine: undefined, selectedLine: undefined,
setSelectedLine: () => {}, setSelectedLine: () => {},
@ -28,6 +30,8 @@ const initialState = {
setTrainInfo: () => {}, setTrainInfo: () => {},
trainMenu: "true", trainMenu: "true",
setTrainMenu: () => {}, setTrainMenu: () => {},
updatePermission : false,
setUpdatePermission : () => {},
injectJavascript: "", injectJavascript: "",
}; };
@ -38,6 +42,7 @@ export const useTrainMenu = () => {
}; };
export const TrainMenuProvider = ({ children }) => { export const TrainMenuProvider = ({ children }) => {
const { expoPushToken } = useNotification();
const [selectedLine, setSelectedLine] = useState(undefined); const [selectedLine, setSelectedLine] = useState(undefined);
const [mapsStationData, setMapsStationData] = useState(undefined); const [mapsStationData, setMapsStationData] = useState(undefined);
useEffect(() => { useEffect(() => {
@ -50,6 +55,19 @@ export const TrainMenuProvider = ({ children }) => {
const [stationMenu, setStationMenu] = useState(undefined); const [stationMenu, setStationMenu] = useState(undefined);
const [LoadError, setLoadError] = useState(false); 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({ const [trainInfo, setTrainInfo] = useState({
trainNum: undefined, trainNum: undefined,
@ -106,6 +124,8 @@ export const TrainMenuProvider = ({ children }) => {
setTrainInfo, setTrainInfo,
trainMenu, trainMenu,
setTrainMenu, setTrainMenu,
updatePermission,
setUpdatePermission,
injectJavascript, injectJavascript,
}} }}
> >