@@ -2,8 +2,8 @@ import React, { useEffect, useMemo, useState } from "react";
22import { useTranslation , type TFunction } from "next-i18next" ;
33import styled from "styled-components" ;
44import { Button , IconAngleDown , IconAngleUp , IconCross } from "hds-react" ;
5- import { maxBy , trim } from "lodash" ;
6- import { fromUIDate , toUIDate } from "common/src/common/util" ;
5+ import { maxBy } from "lodash" ;
6+ import { fromUIDate } from "common/src/common/util" ;
77import { Transition } from "react-transition-group" ;
88import {
99 fontBold ,
@@ -13,11 +13,12 @@ import {
1313import { breakpoints } from "common/src/common/style" ;
1414import type { ReservationUnitPageQuery } from "@gql/gql-types" ;
1515import { truncatedText } from "@/styles/util" ;
16+ import { getReservationUnitPrice } from "@/modules/reservationUnit" ;
1617import {
17- getReservationUnitPrice ,
18- getTimeString ,
19- } from "@/modules/reservationUnit" ;
20- import { capitalize , getSelectedOption } from "@/modules/util" ;
18+ capitalize ,
19+ formatDateTimeRange ,
20+ getSelectedOption ,
21+ } from "@/modules/util" ;
2122import type {
2223 Control ,
2324 FieldValues ,
@@ -285,19 +286,13 @@ const ReservationCalendarControls = ({
285286} : Props ) : JSX . Element => {
286287 const { t } = useTranslation ( ) ;
287288 const { control, watch, handleSubmit } = reservationForm ;
288- const { start, end } = focusSlot ?? { } ;
289289 const formDate = watch ( "date" ) ;
290290 const formDuration = watch ( "duration" ) ;
291291 const date = new Date ( formDate ?? "" ) ;
292292 const dateValue = useMemo ( ( ) => fromUIDate ( formDate ?? "" ) , [ formDate ] ) ;
293- const focusDate = useMemo (
294- ( ) => focusSlot ?. start ?? dateValue ,
295- [ focusSlot , dateValue ]
296- ) ;
297293 const duration = ! Number . isNaN ( Number ( formDuration ) )
298294 ? Number ( formDuration )
299295 : reservationUnit . minReservationDuration ?? 0 ;
300- const time = watch ( "time" ) ?? getTimeString ( focusDate ) ;
301296 const [ areControlsVisible , setAreControlsVisible ] = useState ( false ) ;
302297
303298 useEffect ( ( ) => {
@@ -306,28 +301,9 @@ const ReservationCalendarControls = ({
306301 }
307302 } , [ setShouldCalendarControlsBeVisible , shouldCalendarControlsBeVisible ] ) ;
308303
309- const startDate = t ( "common:dateWithWeekday" , {
310- date : start && toUIDate ( start ) ,
311- } ) ;
312-
313- const startTime = t ( "common:timeInForm" , {
314- date : time ,
315- } ) ;
316-
317- const endDate = t ( "common:dateWithWeekday" , {
318- date : end && toUIDate ( end ) ,
319- } ) ;
320-
321- const endTime = t ( "common:timeInForm" , {
322- date : end && getTimeString ( end ) ,
323- } ) ;
324-
325304 const togglerLabel = ( ( ) => {
326- const dateStr = trim (
327- `${ capitalize ( startDate ) } ${ startTime } ${
328- endDate !== startDate ? ` - ${ capitalize ( endDate ) } ` : "-"
329- } ${ endTime } `,
330- "-"
305+ const dateStr = capitalize (
306+ formatDateTimeRange ( t , focusSlot . start , focusSlot . end )
331307 ) ;
332308 const durationStr =
333309 duration != null
0 commit comments