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 { 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<Props> = ({
}) => {
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<Props> = ({
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}
>
<Text
style={{

View File

@ -54,13 +54,13 @@ export default function Menu(props) {
}, []);
const mapsRef = useRef(null);
const returnToTop = (bool = true) => {
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,
});

View File

@ -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,
}}
>