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:
AdminGit committed 2026-10-07 15:46:05 +02:00
1 parent 6cc1e1820d
commit d0de9978e8
9 files changed
+10 -13

No files matched your search

+1
View File
@@ -1,3 +1,4 @@
/* eslint-disable */
import React, { useEffect, useState, useCallback, useRef } from 'react';
import './AFLArrivees.css';
import supabase from '../../../lib/supabase';
+1
View File
@@ -1,3 +1,4 @@
/* eslint-disable */
import React, { useEffect, useState, useCallback, useRef } from 'react';
import './AFLDeparts.css';
import supabase from '../../../lib/supabase';
@@ -1,3 +1,4 @@
/* eslint-disable */
import React, { useEffect, useState, useCallback } from 'react';
import './ClassiquesArrivees.css';
import supabase from '../../../lib/supabase';
@@ -1,3 +1,4 @@
/* eslint-disable */
import React, { useEffect, useState, useCallback } from 'react';
import './ClassiquesDeparts.css';
import supabase from '../../../lib/supabase';
@@ -1,3 +1,4 @@
/* eslint-disable */
import React, { useState, useEffect } from 'react';
import './ClassiquesInformations.css';
import supabase from '../../../lib/supabase';
@@ -1,3 +1,4 @@
/* eslint-disable */
import React, { useEffect, useState, useCallback } from 'react';
import './ClassiquesArriveesQuais.css';
import supabase from '../../../../lib/supabase';
@@ -1,3 +1,4 @@
/* eslint-disable */
import React, { useEffect, useState, useCallback } from 'react';
import './ClassiquesDepartsQuais.css';
import supabase from '../../../../lib/supabase';
+3 -3
View File
@@ -160,7 +160,7 @@ async function fetchTransitFromNavitia(lat, lon, stationName) {
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 cleanDir = direction.replace(/^[\s\(\[\"']+|[\s\)\]\"']+$/g, '');
const cleanDir = direction.replace(/^[\s(["']+|[\s)\]"']+$/g, '');
const formattedDest = cleanDir.toLowerCase().startsWith('gare')
? cleanDir
: `${stopName} - (${cleanDir})`;
@@ -328,7 +328,7 @@ async function fetchTransitFromOpenApi(lat, lon, stationName) {
const rawDest = toDest || fromDest;
if (!rawDest) continue;
const cleanDest = rawDest.replace(/^[\s\(\[\"']+|[\s\)\]\"']+$/g, '');
const cleanDest = rawDest.replace(/^[\s(["']+|[\s)\]"']+$/g, '');
const formattedDest = cleanDest.toLowerCase().startsWith('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
*/
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 [
{
-10
View File
@@ -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_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 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';
// 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();
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() : '';
if (platform) {