暫定的に投稿機能新型を実装
This commit is contained in:
parent
5d97ab2f87
commit
d412941635
@ -26,19 +26,27 @@ export const TrainDataView = ({
|
||||
const [mapsStationData, setMapsStationData] = useState(undefined);
|
||||
|
||||
const [platformNumber, setPlatformNumber] = useState();
|
||||
const [lineNumber, setLineNumber] = useState();
|
||||
const [platformDescription, setPlatformDescription] = useState();
|
||||
useEffect(() => {
|
||||
//currentTrainData.Pos = "鴨川~端岡"; //test
|
||||
if (!currentTrainData) return;
|
||||
fetch(
|
||||
`https://n8n.haruk.in/webhook/JR-shikoku-PosID?PosNum=${currentTrainData?.PosNum}&Line=${currentTrainData?.Line}`
|
||||
`https://n8n.haruk.in/webhook/JR-shikoku-PosID-v3?PosId=${currentTrainData?.PosNum}&lineName=${currentTrainData?.Line}&StationName=${currentTrainData?.Pos}`
|
||||
)
|
||||
.then((res) => res.json())
|
||||
.then((data) => {
|
||||
setPlatformNumber(data?.type == "Station" ? data?.platform : undefined);
|
||||
setPlatformDescription(
|
||||
data?.type == "Station" ? data?.description : undefined
|
||||
);
|
||||
if (!data) return;
|
||||
const {type, stationName, lineNumber, platformNumber, position, description} = data;
|
||||
if (type == "Station") {
|
||||
setLineNumber(lineNumber);
|
||||
setPlatformNumber(platformNumber);
|
||||
setPlatformDescription(description);
|
||||
} else {
|
||||
setLineNumber(undefined);
|
||||
setPlatformNumber(undefined);
|
||||
setPlatformDescription(undefined);
|
||||
}
|
||||
});
|
||||
}, [currentTrainData]);
|
||||
useEffect(() => {
|
||||
@ -50,7 +58,8 @@ export const TrainDataView = ({
|
||||
const { from, to, Pos } = PosData;
|
||||
if (isBetween === true) return `${from}~${to}`;
|
||||
if (Pos == "") return "";
|
||||
return `${Pos}${platformNumber ? ` ${platformNumber}番線` : ""}`;
|
||||
if (platformNumber) return `${Pos} ${platformNumber}番乗り場`;
|
||||
if (lineNumber) return `${Pos} ${lineNumber}番線`;
|
||||
};
|
||||
const [dialog, setDialog] = useState(false);
|
||||
const [deleteDialog, setDeleteDialog] = useState(false);
|
||||
@ -58,6 +67,7 @@ export const TrainDataView = ({
|
||||
const [descInput, setDescInput] = useState("");
|
||||
const [stationInput, setStationInput] = useState("");
|
||||
const [stationNumberInput, setStationNumberInput] = useState("");
|
||||
const [lineInput, setLineInput] = useState("");
|
||||
return (
|
||||
<>
|
||||
<TrainPositionDataPush
|
||||
@ -70,8 +80,10 @@ export const TrainDataView = ({
|
||||
descInput={descInput}
|
||||
setPosInput={setPosInput}
|
||||
setDescInput={setDescInput}
|
||||
lineInput={lineInput}
|
||||
setLineInput={setLineInput}
|
||||
station={{
|
||||
Station_JP: trainPositionText(currentTrainData),
|
||||
Station_JP: currentTrainData?.Pos,
|
||||
StationNumber: currentPosition[0],
|
||||
}}
|
||||
/>
|
||||
@ -100,6 +112,7 @@ export const TrainDataView = ({
|
||||
getStationID(currentTrainData?.Pos, stationList)
|
||||
);
|
||||
setPosInput(platformNumber?.toString() || "");
|
||||
setLineInput(lineNumber?.toString() || "");
|
||||
setDeleteDialog(true);
|
||||
} else {
|
||||
setStationInput(Pos.Pos);
|
||||
@ -108,6 +121,7 @@ export const TrainDataView = ({
|
||||
);
|
||||
setDescInput(platformDescription || "");
|
||||
setPosInput(platformNumber?.toString() || "");
|
||||
setLineInput(lineNumber?.toString() || "");
|
||||
setDialog(true);
|
||||
}
|
||||
}}
|
||||
|
@ -50,45 +50,62 @@ export const HeaderText: FC<Props> = ({
|
||||
const { expoPushToken } = useNotification();
|
||||
|
||||
// 列車名、種別、フォントの取得
|
||||
const [typeName, trainName, fontAvailable, isOneMan, infogram, isEdit] =
|
||||
useMemo(() => {
|
||||
const { type, trainName, trainNumDistance, infogram, isEdit } =
|
||||
customTrainDataDetector(trainNum, allCustomTrainData);
|
||||
const [typeString, fontAvailable, isOneMan] = getStringConfig(
|
||||
type,
|
||||
trainNum
|
||||
);
|
||||
switch (true) {
|
||||
case trainName !== "":
|
||||
// 特急の場合は、列車名を取得
|
||||
// 列番対称データがある場合はそれから列車番号を取得
|
||||
return [
|
||||
typeString,
|
||||
trainName +
|
||||
(trainNumDistance !== null
|
||||
? ` ${parseInt(trainNum) - trainNumDistance}号`
|
||||
: ""),
|
||||
fontAvailable,
|
||||
isOneMan,
|
||||
infogram,
|
||||
isEdit,
|
||||
];
|
||||
case trainData[trainData.length - 1] === undefined:
|
||||
return [typeString, "", fontAvailable, isOneMan, infogram, isEdit];
|
||||
default:
|
||||
// 行先がある場合は、行先を取得
|
||||
return [
|
||||
typeString,
|
||||
migrateTrainName(
|
||||
trainData[trainData.length - 1].split(",")[0] + "行き"
|
||||
),
|
||||
fontAvailable,
|
||||
isOneMan,
|
||||
infogram,
|
||||
isEdit
|
||||
];
|
||||
}
|
||||
}, [trainData]);
|
||||
const [
|
||||
typeName,
|
||||
trainName,
|
||||
fontAvailable,
|
||||
isOneMan,
|
||||
infogram,
|
||||
isEdit,
|
||||
uwasa,
|
||||
] = useMemo(() => {
|
||||
const { type, trainName, trainNumDistance, infogram, isEdit, uwasa } =
|
||||
customTrainDataDetector(trainNum, allCustomTrainData);
|
||||
const [typeString, fontAvailable, isOneMan] = getStringConfig(
|
||||
type,
|
||||
trainNum
|
||||
);
|
||||
switch (true) {
|
||||
case trainName !== "":
|
||||
// 特急の場合は、列車名を取得
|
||||
// 列番対称データがある場合はそれから列車番号を取得
|
||||
return [
|
||||
typeString,
|
||||
trainName +
|
||||
(trainNumDistance !== null
|
||||
? ` ${parseInt(trainNum) - trainNumDistance}号`
|
||||
: ""),
|
||||
fontAvailable,
|
||||
isOneMan,
|
||||
infogram,
|
||||
isEdit,
|
||||
uwasa,
|
||||
];
|
||||
case trainData[trainData.length - 1] === undefined:
|
||||
return [
|
||||
typeString,
|
||||
"",
|
||||
fontAvailable,
|
||||
isOneMan,
|
||||
infogram,
|
||||
isEdit,
|
||||
uwasa,
|
||||
];
|
||||
default:
|
||||
// 行先がある場合は、行先を取得
|
||||
return [
|
||||
typeString,
|
||||
migrateTrainName(
|
||||
trainData[trainData.length - 1].split(",")[0] + "行き"
|
||||
),
|
||||
fontAvailable,
|
||||
isOneMan,
|
||||
infogram,
|
||||
isEdit,
|
||||
uwasa,
|
||||
];
|
||||
}
|
||||
}, [trainData]);
|
||||
|
||||
return (
|
||||
<View
|
||||
@ -121,7 +138,19 @@ export const HeaderText: FC<Props> = ({
|
||||
{isOneMan && <OneManText />}
|
||||
<Text style={textConfig}>{trainName}</Text>
|
||||
<InfogramText infogram={infogram} />
|
||||
{isEdit &&<FontAwesome name="commenting-o" size={20} color="white" style={{ marginLeft: 5 }} onPress={()=>alert("このアイコン、列車データはコミュニティによってリアルタイム追加されています。")} />}
|
||||
{isEdit && (
|
||||
<FontAwesome
|
||||
name="commenting-o"
|
||||
size={20}
|
||||
color="white"
|
||||
style={{ marginLeft: 5 }}
|
||||
onPress={() =>
|
||||
alert(
|
||||
`[このアイコン、列車データはコミュニティによってリアルタイム追加されています。]\n↓投稿者メモ↓\n${uwasa}`
|
||||
)
|
||||
}
|
||||
/>
|
||||
)}
|
||||
</TouchableOpacity>
|
||||
|
||||
<View style={{ flex: 1 }} />
|
||||
|
@ -121,6 +121,7 @@ export const EachData: FC<Props> = (props) => {
|
||||
const [dialog, setDialog] = useState(false);
|
||||
const [deleteDialog, setDeleteDialog] = useState(false);
|
||||
const [posInput, setPosInput] = useState("");
|
||||
const [lineInput, setLineInput] = useState("");
|
||||
const [descInput, setDescInput] = useState("");
|
||||
const [stationInput, setStationInput] = useState("");
|
||||
const [stationNumberInput, setStationNumberInput] = useState("");
|
||||
@ -164,6 +165,8 @@ export const EachData: FC<Props> = (props) => {
|
||||
setPosInput,
|
||||
setDescInput,
|
||||
station,
|
||||
lineInput,
|
||||
setLineInput,
|
||||
}}
|
||||
/>
|
||||
<TouchableOpacity
|
||||
|
@ -49,7 +49,7 @@ export const TrainPosition: FC<Props> = ({
|
||||
|
||||
useEffect(() => {
|
||||
fetch(
|
||||
`https://n8n.haruk.in/webhook/JR-shikoku-PosID?PosNum=${currentTrainData?.PosNum}&Line=${currentTrainData?.Line}`
|
||||
`https://n8n.haruk.in/webhook/JR-shikoku-PosID-v3?PosId=${currentTrainData?.PosNum}&lineName=${currentTrainData?.Line}&StationName=${currentTrainData?.Pos}`
|
||||
)
|
||||
.then((res) => res.json())
|
||||
.then((data: { type: string; platform: number; description: string }) => {
|
||||
|
@ -17,7 +17,7 @@ export const TrainPositionDataDelete: FC<Props> = ({
|
||||
stationNumberInput,
|
||||
}) => {
|
||||
const sendPlatformData = () => {
|
||||
fetch(`https://n8n.haruk.in/webhook/JR-shikoku-PosID`, {
|
||||
fetch(`https://n8n.haruk.in/webhook/JR-shikoku-PosID-v3`, {
|
||||
method: "DELETE",
|
||||
headers: { "Content-Type": "application/json" },
|
||||
body: JSON.stringify({
|
||||
|
@ -11,8 +11,10 @@ type Props = {
|
||||
stationNumberInput: string;
|
||||
posInput: string;
|
||||
descInput: string;
|
||||
lineInput: string;
|
||||
setPosInput: (pos: string) => void;
|
||||
setDescInput: (desc: string) => void;
|
||||
setLineInput: (line: string) => void;
|
||||
station: {
|
||||
Station_JP: string;
|
||||
StationNumber: string;
|
||||
@ -24,6 +26,8 @@ export const TrainPositionDataPush: FC<Props> = ({
|
||||
currentTrainData,
|
||||
stationInput,
|
||||
stationNumberInput,
|
||||
lineInput,
|
||||
setLineInput,
|
||||
posInput,
|
||||
descInput,
|
||||
setPosInput,
|
||||
@ -31,16 +35,17 @@ export const TrainPositionDataPush: FC<Props> = ({
|
||||
station,
|
||||
}) => {
|
||||
const sendPlatformData = () => {
|
||||
fetch(`https://n8n.haruk.in/webhook/JR-shikoku-PosID`, {
|
||||
fetch(`https://n8n.haruk.in/webhook/JR-shikoku-PosID-v3`, {
|
||||
method: "POST",
|
||||
headers: { "Content-Type": "application/json" },
|
||||
body: JSON.stringify({
|
||||
PosId: currentTrainData?.PosNum,
|
||||
lineName: currentTrainData?.Line,
|
||||
PlatformNum: parseInt(posInput),
|
||||
Description: descInput,
|
||||
StationName: station.Station_JP,
|
||||
StationId: station.StationNumber,
|
||||
PosId: currentTrainData?.PosNum,//自動:位置情報ID
|
||||
StationId: station.StationNumber,//自動:駅ID
|
||||
StationName: station.Station_JP,//自動:駅名、漢字
|
||||
lineName: currentTrainData?.Line,//自動:位置情報路線ID(koutoku/yosan)
|
||||
Description: descInput,//手動入力、参考情報
|
||||
platformNumber: parseInt(posInput),//手動入力、乗り場表記
|
||||
lineNumber: parseInt(lineInput),//手動入力、番線表記
|
||||
}),
|
||||
})
|
||||
.then(() => {
|
||||
@ -60,11 +65,17 @@ export const TrainPositionDataPush: FC<Props> = ({
|
||||
<Text>駅名: {stationInput}</Text>
|
||||
<Text>駅ナンバー: {stationNumberInput}</Text>
|
||||
<Input
|
||||
label="番線"
|
||||
label="乗り場"
|
||||
inputMode="numeric"
|
||||
value={posInput}
|
||||
onChangeText={setPosInput}
|
||||
/>
|
||||
<Input
|
||||
label="番線"
|
||||
inputMode="numeric"
|
||||
value={lineInput}
|
||||
onChangeText={setLineInput}
|
||||
/>
|
||||
<Input
|
||||
label="参考情報"
|
||||
inputMode="text"
|
||||
|
Loading…
Reference in New Issue
Block a user