From ea4996864c560318c9ccaf31da63e6ca924f5ae4 Mon Sep 17 00:00:00 2001 From: Clara Ni Date: Thu, 6 Mar 2025 13:50:32 +0100 Subject: [PATCH] ui-charts: reorganize manchette folder Signed-off-by: Clara Ni --- .../manchette/Manchette/components/consts.ts | 3 -- ui-charts/src/manchette/Manchette/index.ts | 11 -------- .../src/manchette/Manchette/utils/index.ts | 1 - .../src/manchette/Manchette/utils/vector.ts | 11 -------- .../{Manchette => }/components/Manchette.tsx | 2 +- .../ManchetteWithSpaceTimeChart.tsx | 9 ++---- .../{Manchette => }/components/Waypoint.tsx | 0 .../components/WaypointList.tsx | 0 .../consts.ts | 2 ++ .../hooks/useManchetteWithSpaceTimeChart.ts | 10 +++---- .../hooks/usePaths.ts | 4 +-- ui-charts/src/manchette/index.ts | 28 +++++++++++++------ .../manchette/{Manchette => }/styles/main.css | 1 + .../{Manchette => }/styles/manchette.css | 26 +++++++++++++++++ .../styles/menu.css | 0 .../{Manchette => }/styles/waypoint-list.css | 0 .../{Manchette => }/styles/waypoint.css | 0 .../src/manchette/{Manchette => }/types.ts | 0 .../useManchetteWithSpaceTimeChart/index.ts | 6 ---- .../styles/main.css | 5 ---- .../styles/manchette.css | 25 ----------------- .../utils/point.ts | 11 -------- .../__tests__/helpers.spec.ts | 2 +- .../helpers.ts | 6 ++-- .../utils/index.ts | 12 ++++++++ 25 files changed, 75 insertions(+), 100 deletions(-) delete mode 100644 ui-charts/src/manchette/Manchette/components/consts.ts delete mode 100644 ui-charts/src/manchette/Manchette/index.ts delete mode 100644 ui-charts/src/manchette/Manchette/utils/index.ts delete mode 100644 ui-charts/src/manchette/Manchette/utils/vector.ts rename ui-charts/src/manchette/{Manchette => }/components/Manchette.tsx (99%) rename ui-charts/src/manchette/{useManchetteWithSpaceTimeChart => }/components/ManchetteWithSpaceTimeChart.tsx (94%) rename ui-charts/src/manchette/{Manchette => }/components/Waypoint.tsx (100%) rename ui-charts/src/manchette/{Manchette => }/components/WaypointList.tsx (100%) rename ui-charts/src/manchette/{useManchetteWithSpaceTimeChart => }/consts.ts (93%) rename ui-charts/src/manchette/{useManchetteWithSpaceTimeChart => }/hooks/useManchetteWithSpaceTimeChart.ts (95%) rename ui-charts/src/manchette/{useManchetteWithSpaceTimeChart => }/hooks/usePaths.ts (89%) rename ui-charts/src/manchette/{Manchette => }/styles/main.css (89%) rename ui-charts/src/manchette/{Manchette => }/styles/manchette.css (71%) rename ui-charts/src/manchette/{useManchetteWithSpaceTimeChart => }/styles/menu.css (100%) rename ui-charts/src/manchette/{Manchette => }/styles/waypoint-list.css (100%) rename ui-charts/src/manchette/{Manchette => }/styles/waypoint.css (100%) rename ui-charts/src/manchette/{Manchette => }/types.ts (100%) delete mode 100644 ui-charts/src/manchette/useManchetteWithSpaceTimeChart/index.ts delete mode 100644 ui-charts/src/manchette/useManchetteWithSpaceTimeChart/styles/main.css delete mode 100644 ui-charts/src/manchette/useManchetteWithSpaceTimeChart/styles/manchette.css delete mode 100644 ui-charts/src/manchette/useManchetteWithSpaceTimeChart/utils/point.ts rename ui-charts/src/manchette/{useManchetteWithSpaceTimeChart => utils}/__tests__/helpers.spec.ts (98%) rename ui-charts/src/manchette/{useManchetteWithSpaceTimeChart => utils}/helpers.ts (97%) rename ui-charts/src/manchette/{useManchetteWithSpaceTimeChart => }/utils/index.ts (74%) diff --git a/ui-charts/src/manchette/Manchette/components/consts.ts b/ui-charts/src/manchette/Manchette/components/consts.ts deleted file mode 100644 index 0e6f9a8c3..000000000 --- a/ui-charts/src/manchette/Manchette/components/consts.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const INITIAL_OP_LIST_HEIGHT = 521; -export const MIN_ZOOM_Y = 1; -export const MAX_ZOOM_Y = 10.5; diff --git a/ui-charts/src/manchette/Manchette/index.ts b/ui-charts/src/manchette/Manchette/index.ts deleted file mode 100644 index d1f1592cc..000000000 --- a/ui-charts/src/manchette/Manchette/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -import '@osrd-project/ui-core/dist/theme.css'; -import './styles/main.css'; -import './components/consts'; - -export { default, type ManchetteProps } from './components/Manchette'; -export type { - WaypointMenuData, - Waypoint, - ProjectPathTrainResult, - InteractiveWaypoint, -} from './types'; diff --git a/ui-charts/src/manchette/Manchette/utils/index.ts b/ui-charts/src/manchette/Manchette/utils/index.ts deleted file mode 100644 index f5fecd10f..000000000 --- a/ui-charts/src/manchette/Manchette/utils/index.ts +++ /dev/null @@ -1 +0,0 @@ -export const positionMmToKm = (position: number) => Math.round((position / 1000000) * 10) / 10; diff --git a/ui-charts/src/manchette/Manchette/utils/vector.ts b/ui-charts/src/manchette/Manchette/utils/vector.ts deleted file mode 100644 index d5b98d689..000000000 --- a/ui-charts/src/manchette/Manchette/utils/vector.ts +++ /dev/null @@ -1,11 +0,0 @@ -export type Point = { - x: number; - y: number; -}; - -export function getDiff(a: Point, b: Point): Point { - return { - x: b.x - a.x, - y: b.y - a.y, - }; -} diff --git a/ui-charts/src/manchette/Manchette/components/Manchette.tsx b/ui-charts/src/manchette/components/Manchette.tsx similarity index 99% rename from ui-charts/src/manchette/Manchette/components/Manchette.tsx rename to ui-charts/src/manchette/components/Manchette.tsx index ff7d6f870..416144141 100644 --- a/ui-charts/src/manchette/Manchette/components/Manchette.tsx +++ b/ui-charts/src/manchette/components/Manchette.tsx @@ -3,7 +3,7 @@ import React, { useLayoutEffect, useRef, useState } from 'react'; import { ZoomIn, ZoomOut } from '@osrd-project/ui-icons'; import cx from 'classnames'; -import { INITIAL_OP_LIST_HEIGHT, MAX_ZOOM_Y, MIN_ZOOM_Y } from './consts'; +import { INITIAL_OP_LIST_HEIGHT, MAX_ZOOM_Y, MIN_ZOOM_Y } from '../consts'; import WaypointList from './WaypointList'; import type { InteractiveWaypoint, WaypointMenuData } from '../types'; diff --git a/ui-charts/src/manchette/useManchetteWithSpaceTimeChart/components/ManchetteWithSpaceTimeChart.tsx b/ui-charts/src/manchette/components/ManchetteWithSpaceTimeChart.tsx similarity index 94% rename from ui-charts/src/manchette/useManchetteWithSpaceTimeChart/components/ManchetteWithSpaceTimeChart.tsx rename to ui-charts/src/manchette/components/ManchetteWithSpaceTimeChart.tsx index ad45dd7b6..f50ec0b96 100644 --- a/ui-charts/src/manchette/useManchetteWithSpaceTimeChart/components/ManchetteWithSpaceTimeChart.tsx +++ b/ui-charts/src/manchette/components/ManchetteWithSpaceTimeChart.tsx @@ -1,12 +1,9 @@ import React, { useRef } from 'react'; -import { PathLayer, SpaceTimeChart, type SpaceTimeChartProps } from '../../../spaceTimeChart'; -import Manchette, { - type ProjectPathTrainResult, - type Waypoint, - type ManchetteProps, -} from '../../Manchette'; +import Manchette, { type ManchetteProps } from './Manchette'; +import { PathLayer, SpaceTimeChart, type SpaceTimeChartProps } from '../../spaceTimeChart'; import useManchetteWithSpaceTimeChart from '../hooks/useManchetteWithSpaceTimeChart'; +import { type ProjectPathTrainResult, type Waypoint } from '../types'; export type ManchetteWithSpaceTimeChartProps = { waypoints: Waypoint[]; diff --git a/ui-charts/src/manchette/Manchette/components/Waypoint.tsx b/ui-charts/src/manchette/components/Waypoint.tsx similarity index 100% rename from ui-charts/src/manchette/Manchette/components/Waypoint.tsx rename to ui-charts/src/manchette/components/Waypoint.tsx diff --git a/ui-charts/src/manchette/Manchette/components/WaypointList.tsx b/ui-charts/src/manchette/components/WaypointList.tsx similarity index 100% rename from ui-charts/src/manchette/Manchette/components/WaypointList.tsx rename to ui-charts/src/manchette/components/WaypointList.tsx diff --git a/ui-charts/src/manchette/useManchetteWithSpaceTimeChart/consts.ts b/ui-charts/src/manchette/consts.ts similarity index 93% rename from ui-charts/src/manchette/useManchetteWithSpaceTimeChart/consts.ts rename to ui-charts/src/manchette/consts.ts index c85b1bcb1..117ddf1ff 100644 --- a/ui-charts/src/manchette/useManchetteWithSpaceTimeChart/consts.ts +++ b/ui-charts/src/manchette/consts.ts @@ -1,3 +1,5 @@ +export const INITIAL_OP_LIST_HEIGHT = 521; + export const BASE_WAYPOINT_HEIGHT = 32; export const INITIAL_WAYPOINT_LIST_HEIGHT = 521; export const INITIAL_SPACE_TIME_CHART_HEIGHT = INITIAL_WAYPOINT_LIST_HEIGHT + 40; diff --git a/ui-charts/src/manchette/useManchetteWithSpaceTimeChart/hooks/useManchetteWithSpaceTimeChart.ts b/ui-charts/src/manchette/hooks/useManchetteWithSpaceTimeChart.ts similarity index 95% rename from ui-charts/src/manchette/useManchetteWithSpaceTimeChart/hooks/useManchetteWithSpaceTimeChart.ts rename to ui-charts/src/manchette/hooks/useManchetteWithSpaceTimeChart.ts index e4c0c0444..69f1aaa80 100644 --- a/ui-charts/src/manchette/useManchetteWithSpaceTimeChart/hooks/useManchetteWithSpaceTimeChart.ts +++ b/ui-charts/src/manchette/hooks/useManchetteWithSpaceTimeChart.ts @@ -1,17 +1,17 @@ import { useCallback, useEffect, useMemo, useState } from 'react'; import usePaths from './usePaths'; -import type { SpaceScale, SpaceTimeChartProps } from '../../../spaceTimeChart'; -import type { ProjectPathTrainResult, Waypoint } from '../../Manchette'; +import type { SpaceScale, SpaceTimeChartProps } from '../../spaceTimeChart'; import { MAX_ZOOM_Y, MIN_ZOOM_Y, ZOOM_Y_DELTA, DEFAULT_ZOOM_MS_PER_PX } from '../consts'; +import type { ProjectPathTrainResult, Waypoint } from '../types'; +import { getDistance } from '../utils'; import { computeWaypointsToDisplay, getScales, zoomX, zoomValueToTimeScale, timeScaleToZoomValue, -} from '../helpers'; -import { getDiff } from '../utils/point'; +} from '../utils/helpers'; type State = { xZoom: number; @@ -190,7 +190,7 @@ const useManchettesWithSpaceTimeChart = ( position: { x: number; y: number }; isPanning: boolean; }) => { - const diff = getDiff(payload.initialPosition, payload.position); + const diff = getDistance(payload.initialPosition, payload.position); const newState = { ...state }; if (!payload.isPanning) { diff --git a/ui-charts/src/manchette/useManchetteWithSpaceTimeChart/hooks/usePaths.ts b/ui-charts/src/manchette/hooks/usePaths.ts similarity index 89% rename from ui-charts/src/manchette/useManchetteWithSpaceTimeChart/hooks/usePaths.ts rename to ui-charts/src/manchette/hooks/usePaths.ts index 16e9d0ab3..306aba09d 100644 --- a/ui-charts/src/manchette/useManchetteWithSpaceTimeChart/hooks/usePaths.ts +++ b/ui-charts/src/manchette/hooks/usePaths.ts @@ -1,8 +1,8 @@ import { useMemo } from 'react'; -import { type PathLevel } from '../../../spaceTimeChart'; -import { type ProjectPathTrainResult } from '../../Manchette'; +import { type PathLevel } from '../../spaceTimeChart'; import { PATH_COLOR_DEFAULT } from '../consts'; +import { type ProjectPathTrainResult } from '../types'; const transformCurve = (curve: ProjectPathTrainResult['spaceTimeCurves'][0], departureTime: Date) => curve.positions.map((position, i) => ({ diff --git a/ui-charts/src/manchette/index.ts b/ui-charts/src/manchette/index.ts index d946e6c75..b36f02936 100644 --- a/ui-charts/src/manchette/index.ts +++ b/ui-charts/src/manchette/index.ts @@ -1,9 +1,19 @@ -export { - default as Manchette, - type WaypointMenuData, - type Waypoint, - type ProjectPathTrainResult, - type InteractiveWaypoint, -} from './Manchette'; - -export * from './useManchetteWithSpaceTimeChart'; +import '@osrd-project/ui-core/dist/theme.css'; +import './styles/main.css'; +import './consts'; + +export { default as Manchette, type ManchetteProps } from './components/Manchette'; +export { default as ManchetteWithSpaceTimeChart } from './components/ManchetteWithSpaceTimeChart'; + +export { DEFAULT_ZOOM_MS_PER_PX } from './consts'; + +export { default as useManchetteWithSpaceTimeChart } from './hooks/useManchetteWithSpaceTimeChart'; + +export type { + WaypointMenuData, + Waypoint, + ProjectPathTrainResult, + InteractiveWaypoint, +} from './types'; + +export { timeScaleToZoomValue } from './utils/helpers'; diff --git a/ui-charts/src/manchette/Manchette/styles/main.css b/ui-charts/src/manchette/styles/main.css similarity index 89% rename from ui-charts/src/manchette/Manchette/styles/main.css rename to ui-charts/src/manchette/styles/main.css index c20e89cf9..53a39961d 100644 --- a/ui-charts/src/manchette/Manchette/styles/main.css +++ b/ui-charts/src/manchette/styles/main.css @@ -4,3 +4,4 @@ @import 'manchette.css'; @import 'waypoint.css'; @import 'waypoint-list.css'; +@import 'menu.css'; diff --git a/ui-charts/src/manchette/Manchette/styles/manchette.css b/ui-charts/src/manchette/styles/manchette.css similarity index 71% rename from ui-charts/src/manchette/Manchette/styles/manchette.css rename to ui-charts/src/manchette/styles/manchette.css index 40d142f48..33b5981e7 100644 --- a/ui-charts/src/manchette/Manchette/styles/manchette.css +++ b/ui-charts/src/manchette/styles/manchette.css @@ -56,3 +56,29 @@ } } } + +.manchette-space-time-chart-wrapper { + border-radius: 10px; + box-shadow: + 0px 4px 9px rgba(0, 0, 0, 0.06), + 0px 1px 2px rgba(0, 0, 0, 0.19); + opacity: 1; + background-color: rgba(255, 255, 255, 1); + width: 100%; + position: relative; + + .manchette { + overflow-y: auto; + overflow-x: hidden; + + &.no-scroll { + overflow-y: clip; + } + } + + .space-time-chart-container { + height: 561px; + width: 100%; + bottom: 0; + } +} diff --git a/ui-charts/src/manchette/useManchetteWithSpaceTimeChart/styles/menu.css b/ui-charts/src/manchette/styles/menu.css similarity index 100% rename from ui-charts/src/manchette/useManchetteWithSpaceTimeChart/styles/menu.css rename to ui-charts/src/manchette/styles/menu.css diff --git a/ui-charts/src/manchette/Manchette/styles/waypoint-list.css b/ui-charts/src/manchette/styles/waypoint-list.css similarity index 100% rename from ui-charts/src/manchette/Manchette/styles/waypoint-list.css rename to ui-charts/src/manchette/styles/waypoint-list.css diff --git a/ui-charts/src/manchette/Manchette/styles/waypoint.css b/ui-charts/src/manchette/styles/waypoint.css similarity index 100% rename from ui-charts/src/manchette/Manchette/styles/waypoint.css rename to ui-charts/src/manchette/styles/waypoint.css diff --git a/ui-charts/src/manchette/Manchette/types.ts b/ui-charts/src/manchette/types.ts similarity index 100% rename from ui-charts/src/manchette/Manchette/types.ts rename to ui-charts/src/manchette/types.ts diff --git a/ui-charts/src/manchette/useManchetteWithSpaceTimeChart/index.ts b/ui-charts/src/manchette/useManchetteWithSpaceTimeChart/index.ts deleted file mode 100644 index c57cd862f..000000000 --- a/ui-charts/src/manchette/useManchetteWithSpaceTimeChart/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -import './styles/main.css'; - -export { default as useManchetteWithSpaceTimeChart } from './hooks/useManchetteWithSpaceTimeChart'; -export { default as ManchetteWithSpaceTimeChart } from './components/ManchetteWithSpaceTimeChart'; -export { DEFAULT_ZOOM_MS_PER_PX } from './consts'; -export { timeScaleToZoomValue } from './helpers'; diff --git a/ui-charts/src/manchette/useManchetteWithSpaceTimeChart/styles/main.css b/ui-charts/src/manchette/useManchetteWithSpaceTimeChart/styles/main.css deleted file mode 100644 index cb5169c1d..000000000 --- a/ui-charts/src/manchette/useManchetteWithSpaceTimeChart/styles/main.css +++ /dev/null @@ -1,5 +0,0 @@ -@import 'tailwindcss/base'; -@import 'tailwindcss/components'; -@import 'tailwindcss/utilities'; -@import 'manchette.css'; -@import 'menu.css'; diff --git a/ui-charts/src/manchette/useManchetteWithSpaceTimeChart/styles/manchette.css b/ui-charts/src/manchette/useManchetteWithSpaceTimeChart/styles/manchette.css deleted file mode 100644 index f249bb73e..000000000 --- a/ui-charts/src/manchette/useManchetteWithSpaceTimeChart/styles/manchette.css +++ /dev/null @@ -1,25 +0,0 @@ -.manchette-space-time-chart-wrapper { - border-radius: 10px; - box-shadow: - 0px 4px 9px rgba(0, 0, 0, 0.06), - 0px 1px 2px rgba(0, 0, 0, 0.19); - opacity: 1; - background-color: rgba(255, 255, 255, 1); - width: 100%; - position: relative; - - .manchette { - overflow-y: auto; - overflow-x: hidden; - - &.no-scroll { - overflow-y: clip; - } - } - - .space-time-chart-container { - height: 561px; - width: 100%; - bottom: 0; - } -} diff --git a/ui-charts/src/manchette/useManchetteWithSpaceTimeChart/utils/point.ts b/ui-charts/src/manchette/useManchetteWithSpaceTimeChart/utils/point.ts deleted file mode 100644 index d5b98d689..000000000 --- a/ui-charts/src/manchette/useManchetteWithSpaceTimeChart/utils/point.ts +++ /dev/null @@ -1,11 +0,0 @@ -export type Point = { - x: number; - y: number; -}; - -export function getDiff(a: Point, b: Point): Point { - return { - x: b.x - a.x, - y: b.y - a.y, - }; -} diff --git a/ui-charts/src/manchette/useManchetteWithSpaceTimeChart/__tests__/helpers.spec.ts b/ui-charts/src/manchette/utils/__tests__/helpers.spec.ts similarity index 98% rename from ui-charts/src/manchette/useManchetteWithSpaceTimeChart/__tests__/helpers.spec.ts rename to ui-charts/src/manchette/utils/__tests__/helpers.spec.ts index b751bd7ac..22170d345 100644 --- a/ui-charts/src/manchette/useManchetteWithSpaceTimeChart/__tests__/helpers.spec.ts +++ b/ui-charts/src/manchette/utils/__tests__/helpers.spec.ts @@ -1,6 +1,6 @@ import { describe, it, expect } from 'vitest'; -import { BASE_WAYPOINT_HEIGHT } from '../consts'; +import { BASE_WAYPOINT_HEIGHT } from '../../consts'; import { computeWaypointsToDisplay, getScales } from '../helpers'; // Assuming these types from your code diff --git a/ui-charts/src/manchette/useManchetteWithSpaceTimeChart/helpers.ts b/ui-charts/src/manchette/utils/helpers.ts similarity index 97% rename from ui-charts/src/manchette/useManchetteWithSpaceTimeChart/helpers.ts rename to ui-charts/src/manchette/utils/helpers.ts index 3e1e92925..0229775ab 100644 --- a/ui-charts/src/manchette/useManchetteWithSpaceTimeChart/helpers.ts +++ b/ui-charts/src/manchette/utils/helpers.ts @@ -1,14 +1,14 @@ import { clamp } from 'lodash'; +import { calcTotalDistance, getHeightWithoutLastWaypoint } from '.'; import { BASE_WAYPOINT_HEIGHT, MAX_ZOOM_MS_PER_PX, MAX_ZOOM_X, MIN_ZOOM_MS_PER_PX, MIN_ZOOM_X, -} from './consts'; -import { calcTotalDistance, getHeightWithoutLastWaypoint } from './utils'; -import type { InteractiveWaypoint, Waypoint } from '../Manchette'; +} from '../consts'; +import type { InteractiveWaypoint, Waypoint } from '../types'; type WaypointsOptions = { isProportional: boolean; yZoom: number; height: number }; diff --git a/ui-charts/src/manchette/useManchetteWithSpaceTimeChart/utils/index.ts b/ui-charts/src/manchette/utils/index.ts similarity index 74% rename from ui-charts/src/manchette/useManchetteWithSpaceTimeChart/utils/index.ts rename to ui-charts/src/manchette/utils/index.ts index ab5998e57..006d4309f 100644 --- a/ui-charts/src/manchette/useManchetteWithSpaceTimeChart/utils/index.ts +++ b/ui-charts/src/manchette/utils/index.ts @@ -9,3 +9,15 @@ export const msToS = (time: number) => time / 1000; export const calcTotalDistance = (ops: T[]) => ops.at(-1)!.position - ops.at(0)!.position; + +type Point = { + x: number; + y: number; +}; + +export function getDistance(a: Point, b: Point): Point { + return { + x: b.x - a.x, + y: b.y - a.y, + }; +}