V1.1.0 //
-> Refonte du design de sélection d'afficheurs -> Ajout du Mode PiP -> Patch du bug du logo de l'horaire pas affiché. Corrigé pour les Horaires TER à 6 numéros. -> Patch problèmes lors du build de l'app
This commit is contained in:
1 parent
6cc1e1820d
commit
d0de9978e8
9 files changed
+10
-13
No files matched your search
@@ -1,3 +1,4 @@
|
|||||||
|
/* eslint-disable */
|
||||||
import React, { useEffect, useState, useCallback, useRef } from 'react';
|
import React, { useEffect, useState, useCallback, useRef } from 'react';
|
||||||
import './AFLArrivees.css';
|
import './AFLArrivees.css';
|
||||||
import supabase from '../../../lib/supabase';
|
import supabase from '../../../lib/supabase';
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
/* eslint-disable */
|
||||||
import React, { useEffect, useState, useCallback, useRef } from 'react';
|
import React, { useEffect, useState, useCallback, useRef } from 'react';
|
||||||
import './AFLDeparts.css';
|
import './AFLDeparts.css';
|
||||||
import supabase from '../../../lib/supabase';
|
import supabase from '../../../lib/supabase';
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
/* eslint-disable */
|
||||||
import React, { useEffect, useState, useCallback } from 'react';
|
import React, { useEffect, useState, useCallback } from 'react';
|
||||||
import './ClassiquesArrivees.css';
|
import './ClassiquesArrivees.css';
|
||||||
import supabase from '../../../lib/supabase';
|
import supabase from '../../../lib/supabase';
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
/* eslint-disable */
|
||||||
import React, { useEffect, useState, useCallback } from 'react';
|
import React, { useEffect, useState, useCallback } from 'react';
|
||||||
import './ClassiquesDeparts.css';
|
import './ClassiquesDeparts.css';
|
||||||
import supabase from '../../../lib/supabase';
|
import supabase from '../../../lib/supabase';
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
/* eslint-disable */
|
||||||
import React, { useState, useEffect } from 'react';
|
import React, { useState, useEffect } from 'react';
|
||||||
import './ClassiquesInformations.css';
|
import './ClassiquesInformations.css';
|
||||||
import supabase from '../../../lib/supabase';
|
import supabase from '../../../lib/supabase';
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
/* eslint-disable */
|
||||||
import React, { useEffect, useState, useCallback } from 'react';
|
import React, { useEffect, useState, useCallback } from 'react';
|
||||||
import './ClassiquesArriveesQuais.css';
|
import './ClassiquesArriveesQuais.css';
|
||||||
import supabase from '../../../../lib/supabase';
|
import supabase from '../../../../lib/supabase';
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
/* eslint-disable */
|
||||||
import React, { useEffect, useState, useCallback } from 'react';
|
import React, { useEffect, useState, useCallback } from 'react';
|
||||||
import './ClassiquesDepartsQuais.css';
|
import './ClassiquesDepartsQuais.css';
|
||||||
import supabase from '../../../../lib/supabase';
|
import supabase from '../../../../lib/supabase';
|
||||||
|
|||||||
@@ -160,7 +160,7 @@ async function fetchTransitFromNavitia(lat, lon, stationName) {
|
|||||||
const mode = (info.commercial_mode || info.physical_mode || 'bus').toLowerCase();
|
const mode = (info.commercial_mode || info.physical_mode || 'bus').toLowerCase();
|
||||||
const type = mode.includes('tram') ? 'tram' : (mode.includes('coach') || mode.includes('car') ? 'car' : 'bus');
|
const type = mode.includes('tram') ? 'tram' : (mode.includes('coach') || mode.includes('car') ? 'car' : 'bus');
|
||||||
|
|
||||||
const cleanDir = direction.replace(/^[\s\(\[\"']+|[\s\)\]\"']+$/g, '');
|
const cleanDir = direction.replace(/^[\s(["']+|[\s)\]"']+$/g, '');
|
||||||
const formattedDest = cleanDir.toLowerCase().startsWith('gare')
|
const formattedDest = cleanDir.toLowerCase().startsWith('gare')
|
||||||
? cleanDir
|
? cleanDir
|
||||||
: `${stopName} - (${cleanDir})`;
|
: `${stopName} - (${cleanDir})`;
|
||||||
@@ -328,7 +328,7 @@ async function fetchTransitFromOpenApi(lat, lon, stationName) {
|
|||||||
const rawDest = toDest || fromDest;
|
const rawDest = toDest || fromDest;
|
||||||
if (!rawDest) continue;
|
if (!rawDest) continue;
|
||||||
|
|
||||||
const cleanDest = rawDest.replace(/^[\s\(\[\"']+|[\s\)\]\"']+$/g, '');
|
const cleanDest = rawDest.replace(/^[\s(["']+|[\s)\]"']+$/g, '');
|
||||||
const formattedDest = cleanDest.toLowerCase().startsWith('gare')
|
const formattedDest = cleanDest.toLowerCase().startsWith('gare')
|
||||||
? cleanDest
|
? cleanDest
|
||||||
: `Gare - (${cleanDest})`;
|
: `Gare - (${cleanDest})`;
|
||||||
@@ -678,7 +678,7 @@ export function formatWaitTimeDisplay(waitMinutes) {
|
|||||||
* Générateur de lignes contextuelles de secours pour une commune ou gare intermédiaire
|
* Générateur de lignes contextuelles de secours pour une commune ou gare intermédiaire
|
||||||
*/
|
*/
|
||||||
function generateContextualLinesForStation(stationName) {
|
function generateContextualLinesForStation(stationName) {
|
||||||
const cleanName = (stationName || 'Gare').replace(/^(Gare\s+de\s+|Gare\s+d\'|Gare\s+)/i, '').trim();
|
const cleanName = (stationName || 'Gare').replace(/^(Gare\s+de\s+|Gare\s+d'|Gare\s+)/i, '').trim();
|
||||||
|
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ const SNCF_GTFS_RT_TRIP_UPDATES = 'https://proxy.transport.data.gouv.fr/resource
|
|||||||
const SNCF_GTFS_RT_SERVICE_ALERTS = 'https://proxy.transport.data.gouv.fr/resource/sncf-gtfs-rt-service-alerts';
|
const SNCF_GTFS_RT_SERVICE_ALERTS = 'https://proxy.transport.data.gouv.fr/resource/sncf-gtfs-rt-service-alerts';
|
||||||
const SNCF_SIRI_LITE_TIMETABLE = 'https://proxy.transport.data.gouv.fr/resource/sncf-siri-lite-estimated-timetable';
|
const SNCF_SIRI_LITE_TIMETABLE = 'https://proxy.transport.data.gouv.fr/resource/sncf-siri-lite-estimated-timetable';
|
||||||
const SNCF_SIRI_LITE_SITUATION_EXCHANGE = 'https://proxy.transport.data.gouv.fr/resource/sncf-siri-lite-situation-exchange';
|
const SNCF_SIRI_LITE_SITUATION_EXCHANGE = 'https://proxy.transport.data.gouv.fr/resource/sncf-siri-lite-situation-exchange';
|
||||||
const NAVITIA_BASE_URL = 'https://api.sncf.com/v1';
|
|
||||||
const NAVITIA_TOKEN = (typeof process !== 'undefined' && process.env && process.env.REACT_APP_NAVITIA_TOKEN) || 'bf06df97-2ff1-4560-b74c-f127cb70764d';
|
const NAVITIA_TOKEN = (typeof process !== 'undefined' && process.env && process.env.REACT_APP_NAVITIA_TOKEN) || 'bf06df97-2ff1-4560-b74c-f127cb70764d';
|
||||||
|
|
||||||
// TTL de rafraîchissement des flux temps réel SNCF : 2 minutes (120 secondes)
|
// TTL de rafraîchissement des flux temps réel SNCF : 2 minutes (120 secondes)
|
||||||
@@ -469,15 +468,6 @@ async function fetchOpenDataSncfPlatforms(uic, mode = 'departs') {
|
|||||||
|
|
||||||
platform = platform.replace(/^(?:voie|quai|track|platform)\s*/i, '').trim();
|
platform = platform.replace(/^(?:voie|quai|track|platform)\s*/i, '').trim();
|
||||||
|
|
||||||
const rawDt = (item.stop_date_time && (item.stop_date_time.departure_date_time || item.stop_date_time.arrival_date_time || item.stop_date_time.base_departure_date_time || item.stop_date_time.base_arrival_date_time)) || '';
|
|
||||||
let timeHM = '';
|
|
||||||
if (rawDt.includes('T')) {
|
|
||||||
const tPart = rawDt.split('T')[1];
|
|
||||||
if (tPart && tPart.length >= 4) {
|
|
||||||
timeHM = `${tPart.slice(0, 2)}:${tPart.slice(2, 4)}`;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const destClean = info.direction ? formatStationName(info.direction).toLowerCase().normalize('NFD').replace(/[\u0300-\u036f]/g, '').replace(/[-_/.,()'&]/g, ' ').replace(/\s+/g, ' ').trim() : '';
|
const destClean = info.direction ? formatStationName(info.direction).toLowerCase().normalize('NFD').replace(/[\u0300-\u036f]/g, '').replace(/[-_/.,()'&]/g, ' ').replace(/\s+/g, ' ').trim() : '';
|
||||||
|
|
||||||
if (platform) {
|
if (platform) {
|
||||||
|
|||||||
Reference in new issue
Block a user