From 7b4badb9b078abb74ce7e38e815fb65199197345 Mon Sep 17 00:00:00 2001 From: harukin-expo-dev-env Date: Wed, 11 Jun 2025 13:47:37 +0000 Subject: [PATCH 1/2] =?UTF-8?q?injectJavascript=E3=81=AB=E5=A4=89=E5=8C=96?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/webViewInjectjavascript.ts | 128 ++++++++++++++++++--------------- 1 file changed, 70 insertions(+), 58 deletions(-) diff --git a/lib/webViewInjectjavascript.ts b/lib/webViewInjectjavascript.ts index a2e8260..3645b7f 100644 --- a/lib/webViewInjectjavascript.ts +++ b/lib/webViewInjectjavascript.ts @@ -2,13 +2,15 @@ type InjectJavascriptData = ( a: string, b: string, c: string, - d: string + d: string, + e: string ) => string; export const injectJavascriptData: InjectJavascriptData = ( mapSwitch, iconSetting, stationMenu, - trainMenu + trainMenu, + uiSetting ) => { // 一番上のメニュー非表示 地図スイッチによって切り替え const topMenu = @@ -1247,11 +1249,17 @@ export const injectJavascriptData: InjectJavascriptData = ( const returnText1 = (isWanman ? "ワンマン " : "") + trainName + viaData; const returnText2 = (ToData ? ToData+"行 " : ToData)+ TrainNumber; 行き先情報.innerText = ""; - 行き先情報.insertAdjacentHTML('beforebegin', "

" + (ToData ? ToData + "行 " : ToData) + "

"); - 行き先情報.insertAdjacentHTML('beforebegin', "

" + returnText1 + "

"); - 行き先情報.insertAdjacentHTML('beforebegin', "

" + TrainNumber + (JRF ? "":"レ") + "

"); - 行き先情報.insertAdjacentHTML('beforebegin', "

" + (hasProblem ? "‼️停止中‼️" : "") + "

"); - } + ${uiSetting === "tokyo" ? ` + 行き先情報.insertAdjacentHTML('beforebegin', "

" + (ToData ? ToData + "行 " : ToData) + "

"); + 行き先情報.insertAdjacentHTML('beforebegin', "

" + returnText1 + "

"); + 行き先情報.insertAdjacentHTML('beforebegin', "

" + TrainNumber + (JRF ? "":"レ") + "

"); + 行き先情報.insertAdjacentHTML('beforebegin', "

" + (hasProblem ? "‼️停止中‼️" : "") + "

"); + `: ` + 行き先情報.insertAdjacentHTML('beforebegin', "

" + returnText1 + "

"); + 行き先情報.insertAdjacentHTML('beforebegin', "

" + (ToData ? ToData + "行 " : ToData) + "

" + TrainNumber + (JRF ? "":"レ") + "

"); + 行き先情報.insertAdjacentHTML('beforebegin', "

" + (hasProblem ? "‼️停止中‼️" : "") + "

"); + `} + } `; const textInsert = @@ -1293,58 +1301,62 @@ const setNewTrainItem = (element)=>{ const setStrings = () =>{ try { const elements = document.querySelectorAll('#disp > div > div > div[onclick]'); - const elementBaseBase = document.querySelectorAll('[id^="stationBlock"]'); - elementBaseBase.forEach(e=>{ //それぞれの駅ブロック横一列 - e.style.display = 'flex'; - e.style.height = "unset"; - e.style.flexDirection = 'row'; - //e.style.alignItems = "left"; - e.style.justifyContent = 'center'; - const x = e.querySelectorAll(':scope > div');//配下のdiv要素を選択 - //x[0] 登りブロック x[2] 下りブロック x[1] 駅ブロック - const aaa = (x2,pos) => { - x2.style.display = 'flex'; - x2.style.flexDirection = 'row'; - if(pos == "right"){ - x2.style.alignItems = 'flex-start'; - x2.style.justifyContent = 'flex-start'; - }else if(pos == "left"){ - x2.style.alignItems = 'flex-end'; - x2.style.justifyContent = 'flex-end'; + const setNewTrainItemUI = ()=>{ + const elementBaseBase = document.querySelectorAll('[id^="stationBlock"]'); + elementBaseBase.forEach(e=>{ //それぞれの駅ブロック横一列 + e.style.display = 'flex'; + e.style.height = "unset"; + e.style.flexDirection = 'row'; + //e.style.alignItems = "left"; + e.style.justifyContent = 'center'; + const x = e.querySelectorAll(':scope > div');//配下のdiv要素を選択 + //x[0] 登りブロック x[2] 下りブロック x[1] 駅ブロック + const aaa = (x2,pos) => { + x2.style.display = 'flex'; + x2.style.flexDirection = 'row'; + if(pos == "right"){ + x2.style.alignItems = 'flex-start'; + x2.style.justifyContent = 'flex-start'; + }else if(pos == "left"){ + x2.style.alignItems = 'flex-end'; + x2.style.justifyContent = 'flex-end'; + } + x2.style.flexWrap = 'wrap'; + x2.style.width = '100%'; + x2.style.height = "100%"; + } - x2.style.flexWrap = 'wrap'; - x2.style.width = '100%'; - x2.style.height = "100%"; - - } - const aaa2 = (x2) => { - x2.style.display = 'flex'; - x2.style.flexDirection = 'row'; - x2.style.alignItems = 'center'; - x2.style.justifyContent = 'center'; - x2.style.flexWrap = 'wrap'; - x2.style.width = '100%'; - x2.style.height = "unset"; - const x3 = x2.querySelectorAll(":scope > div"); - x3.forEach(i=>{ - i.style.position = "unset"; - i.style.display = "flex"; - i.style.flexDirection = "column"; - i.style.flex = "1"; - i.style.backgroundColor = "#00000000"; - i.querySelectorAll(":scope > *").forEach(j=>{ - j.style.width = "100%"; - j.style.textAlign = "center"; - j.style.margin = "5px"; - j.style.padding = "5px"; + const aaa2 = (x2) => { + x2.style.display = 'flex'; + x2.style.flexDirection = 'row'; + x2.style.alignItems = 'center'; + x2.style.justifyContent = 'center'; + x2.style.flexWrap = 'wrap'; + x2.style.width = '100%'; + x2.style.height = "unset"; + const x3 = x2.querySelectorAll(":scope > div"); + x3.forEach(i=>{ + i.style.position = "unset"; + i.style.display = "flex"; + i.style.flexDirection = "column"; + i.style.flex = "1"; + i.style.backgroundColor = "#00000000"; + i.querySelectorAll(":scope > *").forEach(j=>{ + j.style.width = "100%"; + j.style.textAlign = "center"; + j.style.margin = "5px"; + j.style.padding = "5px"; + }); }); - }); - } - aaa(x[0],"left"); - aaa2(x[1]); - aaa(x[2],"right"); - - }); + } + aaa(x[0],"left"); + aaa2(x[1]); + aaa(x[2],"right"); + + }); + } + + ${uiSetting === "tokyo" ? `setNewTrainItemUI();`: ``} for (let element of elements) { if(element.getAttribute('offclick')){ continue; } element.setAttribute('offclick',element.getAttribute('onclick')) @@ -1375,7 +1387,7 @@ const setStrings = () =>{ } ` : ""} nameReplace(列車名データ,列番データ,行き先情報,hasProblem); - setNewTrainItem(element); + ${uiSetting === "tokyo" ? `setNewTrainItem(element);`: ``} } try{ for(let d of document.getElementById('disp').childNodes){ From b5b9558136f02741e7ba472e09b244bf055a294b Mon Sep 17 00:00:00 2001 From: harukin-expo-dev-env Date: Wed, 11 Jun 2025 14:18:00 +0000 Subject: [PATCH 2/2] =?UTF-8?q?=E8=A8=AD=E5=AE=9A=E6=A9=9F=E8=83=BD?= =?UTF-8?q?=E3=82=92=E5=AE=9F=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/configuration/layout_default.jpg | Bin 0 -> 31145 bytes assets/configuration/layout_tokyo.jpg | Bin 0 -> 27640 bytes components/Settings/LayoutSettings.js | 13 +++++++++++++ components/Settings/settings.js | 5 +++++ components/atom/SwitchArea.js | 6 ++++-- stateBox/useTrainMenu.js | 12 +++++++++++- 6 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 assets/configuration/layout_default.jpg create mode 100644 assets/configuration/layout_tokyo.jpg diff --git a/assets/configuration/layout_default.jpg b/assets/configuration/layout_default.jpg new file mode 100644 index 0000000000000000000000000000000000000000..58d99d9c228d9d74d65317d59bd6e362b9d41fed GIT binary patch literal 31145 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 ui@$@X->he?Kl(}OKf6rp*7;MwEqB^z|uGX literal 0 HcmV?d00001 diff --git a/assets/configuration/layout_tokyo.jpg b/assets/configuration/layout_tokyo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a0c06bb25ab2f59669e5536d89994f390b6661f0 GIT binary patch literal 27640 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 IX6Mbn0Y>-~{Qv*} literal 0 HcmV?d00001 diff --git a/components/Settings/LayoutSettings.js b/components/Settings/LayoutSettings.js index 4020857..07e1780 100644 --- a/components/Settings/LayoutSettings.js +++ b/components/Settings/LayoutSettings.js @@ -18,6 +18,8 @@ export const LayoutSettings = ({ setUsePDFView, trainMenu, setTrainMenu, + uiSetting, + setUiSetting, trainPosition, setTrainPosition, headerSize, @@ -38,6 +40,17 @@ export const LayoutSettings = ({ falseText={"本家\n(文字アイコン)"} trueText={"オリジナル\n(車種アイコン)"} /> + { AS.getItem("iconSwitch").then(setIconSetting); AS.getItem("mapSwitch").then(setMapSwitch); @@ -48,6 +49,7 @@ export default function Setting(props) { AS.getItem("trainPositionSwitch").then(setTrainPosition); AS.getItem("headerSize").then(setHeaderSize); AS.getItem("startPage").then(setStartPage); + AS.getItem("uiSetting").then(setUiSetting); }, []); const testNFC = async () => { //const result = await ExpoFelicaReader.scan(); @@ -63,6 +65,7 @@ export default function Setting(props) { AS.setItem("trainPositionSwitch", trainPosition.toString()), AS.setItem("headerSize", headerSize), AS.setItem("startPage", startPage.toString()), + AS.setItem("uiSetting", uiSetting), ]).then(() => Updates.reloadAsync()); }; return ( @@ -114,6 +117,8 @@ export default function Setting(props) { setTrainMenu={setTrainMenu} trainPosition={trainPosition} setTrainPosition={setTrainPosition} + uiSetting={uiSetting} + setUiSetting={setUiSetting} testNFC={testNFC} updateAndReload={updateAndReload} headerSize={headerSize} diff --git a/components/atom/SwitchArea.js b/components/atom/SwitchArea.js index 245a708..74e39d0 100644 --- a/components/atom/SwitchArea.js +++ b/components/atom/SwitchArea.js @@ -8,6 +8,8 @@ export const SwitchArea = ({ trueImage, falseText, trueText, + falseValue = false, + trueValue = true, children, }) => { return ( @@ -37,7 +39,7 @@ export const SwitchArea = ({ bool={bool} setBool={setBool} color="red" - value={false} + value={falseValue} image={falseImage} subText={falseText} /> @@ -45,7 +47,7 @@ export const SwitchArea = ({ bool={bool} setBool={setBool} color="red" - value={true} + value={trueValue} image={trueImage} subText={trueText} /> diff --git a/stateBox/useTrainMenu.js b/stateBox/useTrainMenu.js index fca06d7..c4d8467 100644 --- a/stateBox/useTrainMenu.js +++ b/stateBox/useTrainMenu.js @@ -16,6 +16,8 @@ const initialState = { setMapSwitch: () => {}, stationMenu: undefined, setStationMenu: () => {}, + uiSetting: undefined, + setUiSetting: () => {}, LoadError: false, setLoadError: () => {}, trainInfo: { @@ -58,12 +60,16 @@ export const TrainMenuProvider = ({ children }) => { //駅情報画面用 const [trainMenu, setTrainMenu] = useState("true"); + //GUIデザインベース + const [uiSetting, setUiSetting] = useState("tokyo"); + //地図表示テキスト const injectJavascript = injectJavascriptData( mapSwitch, iconSetting, stationMenu, - trainMenu + trainMenu, + uiSetting ); useEffect(() => { @@ -75,6 +81,8 @@ export const TrainMenuProvider = ({ children }) => { ASCore({ k: "stationSwitch", s: setStationMenu, d: "true", u: true }); //列車メニュースイッチ ASCore({ k: "trainSwitch", s: setTrainMenu, d: "true", u: true }); + //GUIデザインベーススイッチ + ASCore({ k: "uiSetting", s: setUiSetting, d: "tokyo", u: true }); }, []); return ( @@ -90,6 +98,8 @@ export const TrainMenuProvider = ({ children }) => { setMapSwitch, stationMenu, setStationMenu, + uiSetting, + setUiSetting, LoadError, setLoadError, trainInfo,