Refactor imports (#470)

This commit is contained in:
Camille Moussu
2026-01-20 17:33:30 +01:00
committed by GitHub
parent aeb8670895
commit 23d50f250d
149 changed files with 1439 additions and 1374 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
import { Box, Button, TextField } from "@linagora/twake-mui";
import { Description as DescriptionIcon } from "@mui/icons-material";
import { useI18n } from "twake-i18n";
import { FieldWithLabel } from "./components/FieldWithLabel";
import { Description as DescriptionIcon } from "@mui/icons-material";
export function AddDescButton({
showDescription,
+1 -1
View File
@@ -1,3 +1,4 @@
import { CalendarEvent } from "@/features/Events/EventsTypes";
import {
Button,
ButtonGroup,
@@ -9,7 +10,6 @@ import {
Radio,
RadioGroup,
} from "@linagora/twake-mui";
import { CalendarEvent } from "../../features/Events/EventsTypes";
import { useState } from "react";
import { useI18n } from "twake-i18n";
@@ -1,6 +1,6 @@
import { EventErrorHandler } from "@/components/Error/EventErrorHandler";
import { Card, Typography } from "@linagora/twake-mui";
import { useRef, useEffect } from "react";
import { EventErrorHandler } from "../../Error/EventErrorHandler";
import { useEffect, useRef } from "react";
export function ErrorEventChip({
event,
+1 -2
View File
@@ -6,7 +6,7 @@ import {
CardHeader,
Typography,
} from "@linagora/twake-mui";
import React, { useEffect, useRef, useState } from "react";
import { useRef } from "react";
import { stringAvatar } from "../utils/eventUtils";
import { ErrorEventChip } from "./ErrorEventChip";
import {
@@ -21,7 +21,6 @@ import {
IconDisplayConfig,
useCompactMode,
} from "./EventChipUtils";
import { SimpleEventChip } from "./SimpleEventChip";
const PRIVATE_CLASSIFICATIONS = ["PRIVATE", "CONFIDENTIAL"];
@@ -1,12 +1,12 @@
import { EventErrorHandler } from "@/components/Error/EventErrorHandler";
import { Calendar } from "@/features/Calendars/CalendarTypes";
import { userAttendee } from "@/features/User/models/attendee";
import { getContrastRatio } from "@linagora/twake-mui";
import CancelIcon from "@mui/icons-material/Cancel";
import HelpOutlineIcon from "@mui/icons-material/HelpOutline";
import LockOutlineIcon from "@mui/icons-material/LockOutline";
import { Box, getContrastRatio } from "@linagora/twake-mui";
import moment from "moment";
import React, { useLayoutEffect, useState } from "react";
import { Calendar } from "../../../features/Calendars/CalendarTypes";
import { userAttendee } from "../../../features/User/models/attendee";
import { EventErrorHandler } from "../../Error/EventErrorHandler";
import { EVENT_DURATION } from "./EventChip";
const COMPACT_WIDTH_THRESHOLD = 100;
@@ -1,4 +1,3 @@
import React from "react";
import { Card, Typography } from "@linagora/twake-mui";
export function SimpleEventChip({ title }: { title: string }) {
+1 -1
View File
@@ -1,5 +1,5 @@
import { CalendarEvent } from "@/features/Events/EventsTypes";
import { MenuItem } from "@linagora/twake-mui";
import { CalendarEvent } from "../../features/Events/EventsTypes";
import { useI18n } from "twake-i18n";
export default function EventDuplication({
+21 -26
View File
@@ -1,4 +1,11 @@
import React from "react";
import { Calendar } from "@/features/Calendars/CalendarTypes";
import { RepetitionObject } from "@/features/Events/EventsTypes";
import { userAttendee } from "@/features/User/models/attendee";
import iconCamera from "@/static/images/icon-camera.svg";
import {
addVideoConferenceToDescription,
generateMeetingLink,
} from "@/utils/videoConferenceUtils";
import {
Box,
Button,
@@ -6,45 +13,33 @@ import {
FormControl,
FormControlLabel,
IconButton,
InputLabel,
MenuItem,
Select,
SelectChangeEvent,
TextField,
ToggleButtonGroup,
ToggleButton,
ToggleButtonGroup,
Typography,
} from "@linagora/twake-mui";
import {
Description as DescriptionIcon,
Public as PublicIcon,
VideocamOutlined as VideocamOutlinedIcon,
ContentCopy as CopyIcon,
Close as DeleteIcon,
ContentCopy as CopyIcon,
Public as PublicIcon,
} from "@mui/icons-material";
import iconCamera from "../../static/images/icon-camera.svg";
import LockOutlineIcon from "@mui/icons-material/LockOutline";
import AttendeeSelector from "../Attendees/AttendeeSearch";
import RepeatEvent from "./EventRepeat";
import { RepetitionObject } from "../../features/Events/EventsTypes";
import { userAttendee } from "../../features/User/models/attendee";
import { Calendar } from "../../features/Calendars/CalendarTypes";
import {
generateMeetingLink,
addVideoConferenceToDescription,
} from "../../utils/videoConferenceUtils";
import { TimezoneAutocomplete } from "../Timezone/TimezoneAutocomplete";
import { CalendarItemList } from "../Calendar/CalendarItemList";
import React from "react";
import { useI18n } from "twake-i18n";
import { FieldWithLabel } from "./components/FieldWithLabel";
import { DateTimeFields } from "./components/DateTimeFields";
import { useAllDayToggle } from "./hooks/useAllDayToggle";
import { splitDateTime, combineDateTime } from "./utils/dateTimeHelpers";
import {} from "./utils/dateRules";
import {} from "./utils/dateTimeFormatters";
import { validateEventForm } from "./utils/formValidation";
import AttendeeSelector from "../Attendees/AttendeeSearch";
import { CalendarItemList } from "../Calendar/CalendarItemList";
import { SnackbarAlert } from "../Loading/SnackBarAlert";
import { TimezoneAutocomplete } from "../Timezone/TimezoneAutocomplete";
import { AddDescButton } from "./AddDescButton";
import { DateTimeFields } from "./components/DateTimeFields";
import { FieldWithLabel } from "./components/FieldWithLabel";
import RepeatEvent from "./EventRepeat";
import { useAllDayToggle } from "./hooks/useAllDayToggle";
import { combineDateTime, splitDateTime } from "./utils/dateTimeHelpers";
import { validateEventForm } from "./utils/formValidation";
interface EventFormFieldsProps {
// Form state
+8 -8
View File
@@ -1,20 +1,20 @@
import { RepetitionObject } from "@/features/Events/EventsTypes";
import {
FormControl,
Select,
SelectChangeEvent,
MenuItem,
Box,
Stack,
Typography,
TextField,
Checkbox,
FormControl,
FormControlLabel,
FormGroup,
MenuItem,
Radio,
RadioGroup,
Select,
SelectChangeEvent,
Stack,
TextField,
Typography,
} from "@linagora/twake-mui";
import { useEffect, useState } from "react";
import { RepetitionObject } from "../../features/Events/EventsTypes";
import { useI18n } from "twake-i18n";
export default function RepeatEvent({
+1 -1
View File
@@ -1,5 +1,5 @@
import { Box, Link, Typography } from "@linagora/twake-mui";
import React from "react";
import { Box, Typography, Link } from "@linagora/twake-mui";
type InfoRowProps = {
icon: React.ReactNode;
@@ -1,25 +1,27 @@
import React, { useMemo } from "react";
import { Box, Typography } from "@linagora/twake-mui";
import { TextFieldProps } from "@linagora/twake-mui";
import { DatePicker } from "@mui/x-date-pickers/DatePicker";
import { DatePickerFieldProps } from "@mui/x-date-pickers/DatePicker";
import { TimePicker } from "@mui/x-date-pickers/TimePicker";
import { TimePickerFieldProps } from "@mui/x-date-pickers/TimePicker";
import { LocalizationProvider } from "@mui/x-date-pickers/LocalizationProvider";
import { Box, TextFieldProps, Typography } from "@linagora/twake-mui";
import { AdapterDayjs } from "@mui/x-date-pickers/AdapterDayjs";
import {
DatePicker,
DatePickerFieldProps,
} from "@mui/x-date-pickers/DatePicker";
import { PickerValue } from "@mui/x-date-pickers/internals";
import { LocalizationProvider } from "@mui/x-date-pickers/LocalizationProvider";
import {
TimePicker,
TimePickerFieldProps,
} from "@mui/x-date-pickers/TimePicker";
import dayjs, { Dayjs } from "dayjs";
import customParseFormat from "dayjs/plugin/customParseFormat";
import { useI18n } from "twake-i18n";
import { LONG_DATE_FORMAT } from "../utils/dateTimeFormatters";
import "dayjs/locale/fr";
import "dayjs/locale/en";
import "dayjs/locale/fr";
import "dayjs/locale/ru";
import "dayjs/locale/vi";
import { PickerValue } from "@mui/x-date-pickers/internals";
import customParseFormat from "dayjs/plugin/customParseFormat";
import React, { useMemo } from "react";
import { useI18n } from "twake-i18n";
import { LONG_DATE_FORMAT } from "../utils/dateTimeFormatters";
import { dtDate, dtTime, toDateTime } from "../utils/dateTimeHelpers";
import { ReadOnlyDateField } from "./ReadOnlyPickerField";
import { EditableTimeField } from "./EditableTimeField";
import { ReadOnlyDateField } from "./ReadOnlyPickerField";
dayjs.extend(customParseFormat);
@@ -1,20 +1,20 @@
import React, { useState, useRef, useEffect, useCallback } from "react";
import { TextField } from "@linagora/twake-mui";
import {
useParsedFormat,
usePickerActionsContext,
usePickerContext,
useSplitFieldProps,
} from "@mui/x-date-pickers/hooks";
import { PickerFieldProps } from "@mui/x-date-pickers/models";
import { TimePickerFieldProps } from "@mui/x-date-pickers/TimePicker";
import {
PickerFieldAdapter,
PickerValidationScope,
useValidation,
validateTime,
} from "@mui/x-date-pickers/validation";
import {
useSplitFieldProps,
useParsedFormat,
usePickerContext,
usePickerActionsContext,
} from "@mui/x-date-pickers/hooks";
import { PickerFieldProps } from "@mui/x-date-pickers/models";
import { TimePickerFieldProps } from "@mui/x-date-pickers/TimePicker";
import dayjs, { Dayjs } from "dayjs";
import { Dayjs } from "dayjs";
import React, { useCallback, useEffect, useRef, useState } from "react";
import { parseTimeInput } from "../utils/dateTimeHelpers";
type FieldType = "date" | "time" | "date-time";
@@ -1,5 +1,5 @@
import { Box, SxProps, Theme, Typography } from "@linagora/twake-mui";
import React from "react";
import { Box, Typography, SxProps, Theme } from "@linagora/twake-mui";
/**
* Helper component for field with label
@@ -1,18 +1,17 @@
import React from "react";
import { TextField } from "@linagora/twake-mui";
import { DatePickerFieldProps } from "@mui/x-date-pickers/DatePicker";
import {
useParsedFormat,
usePickerContext,
useSplitFieldProps,
} from "@mui/x-date-pickers/hooks";
import { PickerFieldProps } from "@mui/x-date-pickers/models";
import {
PickerFieldAdapter,
PickerValidationScope,
useValidation,
validateDate,
} from "@mui/x-date-pickers/validation";
import {
useSplitFieldProps,
useParsedFormat,
usePickerContext,
} from "@mui/x-date-pickers/hooks";
import { PickerFieldProps } from "@mui/x-date-pickers/models";
import { DatePickerFieldProps } from "@mui/x-date-pickers/DatePicker";
type FieldType = "date" | "time" | "date-time";
@@ -1,18 +1,18 @@
import { ThunkDispatch } from "@reduxjs/toolkit";
import { AppDispatch } from "@/app/store";
import { Calendar } from "@/features/Calendars/CalendarTypes";
import {
updateEventInstanceAsync,
putEventAsync,
deleteEventInstanceAsync,
deleteEventAsync,
} from "../../../features/Calendars/CalendarSlice";
import { Calendar } from "../../../features/Calendars/CalendarTypes";
import { updateSeriesPartstat } from "../../../features/Events/EventApi";
import { CalendarEvent } from "../../../features/Events/EventsTypes";
import { PartStat } from "../../../features/User/models/attendee";
import { createAttendee } from "../../../features/User/models/attendee.mapper";
import { userData } from "../../../features/User/userDataTypes";
import { buildFamilyName } from "../../../utils/buildFamilyName";
import { getCalendarRange } from "../../../utils/dateUtils";
deleteEventInstanceAsync,
putEventAsync,
updateEventInstanceAsync,
} from "@/features/Calendars/services";
import { updateSeriesPartstat } from "@/features/Events/EventApi";
import { CalendarEvent } from "@/features/Events/EventsTypes";
import { PartStat } from "@/features/User/models/attendee";
import { createAttendee } from "@/features/User/models/attendee.mapper";
import { userData } from "@/features/User/userDataTypes";
import { buildFamilyName } from "@/utils/buildFamilyName";
import { getCalendarRange } from "@/utils/dateUtils";
import { refreshCalendars } from "../utils/eventUtils";
function updateEventAttendees(
@@ -70,7 +70,7 @@ function updateEventAttendees(
}
async function handleSoloRSVP(
dispatch: ThunkDispatch<any, any, any>,
dispatch: AppDispatch,
calendar: Calendar,
event: CalendarEvent
) {
@@ -78,7 +78,7 @@ async function handleSoloRSVP(
}
async function handleAllRSVP(
dispatch: ThunkDispatch<any, any, any>,
dispatch: AppDispatch,
event: CalendarEvent,
userEmail: string,
rsvp: PartStat,
@@ -90,7 +90,7 @@ async function handleAllRSVP(
}
async function handleDefaultRSVP(
dispatch: ThunkDispatch<any, any, any>,
dispatch: AppDispatch,
calendar: Calendar,
newEvent: CalendarEvent
) {
@@ -98,7 +98,7 @@ async function handleDefaultRSVP(
}
export async function handleRSVP(
dispatch: ThunkDispatch<any, any, any>,
dispatch: AppDispatch,
calendar: Calendar,
user: userData | undefined,
event: CalendarEvent,
@@ -1,6 +1,5 @@
import React from "react";
import { combineDateTime } from "../utils/dateTimeHelpers";
import { getRoundedCurrentTime } from "../utils/dateTimeFormatters";
/**
* Parameters for all-day toggle hook
@@ -1,6 +1,6 @@
import moment from "moment-timezone";
import dayjs, { Dayjs } from "dayjs";
import customParseFormat from "dayjs/plugin/customParseFormat";
import moment from "moment-timezone";
dayjs.extend(customParseFormat);
+13 -12
View File
@@ -1,16 +1,17 @@
import { AppDispatch } from "@/app/store";
import { emptyEventsCal } from "@/features/Calendars/CalendarSlice";
import { Calendar } from "@/features/Calendars/CalendarTypes";
import {
getCalendarDetailAsync,
getCalendarsListAsync,
refreshCalendarWithSyncToken,
} from "@/features/Calendars/services";
import { userAttendee } from "@/features/User/models/attendee";
import { getInitials, stringToGradient } from "@/utils/avatarUtils";
import { formatDateToYYYYMMDDTHHMMSS } from "@/utils/dateUtils";
import { Avatar, Badge, Box, Typography } from "@linagora/twake-mui";
import CancelIcon from "@mui/icons-material/Cancel";
import CheckCircleIcon from "@mui/icons-material/CheckCircle";
import { Avatar, Badge, Box, Typography } from "@linagora/twake-mui";
import { stringToGradient, getInitials } from "../../../utils/avatarUtils";
import { ThunkDispatch } from "@reduxjs/toolkit";
import { emptyEventsCal } from "../../../features/Calendars/CalendarSlice";
import { getCalendarsListAsync } from "../../../features/Calendars/services/getCalendarsListAsync";
import { getCalendarDetailAsync } from "../../../features/Calendars/services/getCalendarDetailAsync";
import { Calendar } from "../../../features/Calendars/CalendarTypes";
import { userAttendee } from "../../../features/User/models/attendee";
import { refreshCalendarWithSyncToken } from "../../../features/Calendars/services/refreshCalendar";
import { formatDateToYYYYMMDDTHHMMSS } from "../../../utils/dateUtils";
import { AppDispatch } from "../../../app/store";
export function renderAttendeeBadge(
a: userAttendee,
@@ -139,7 +140,7 @@ export async function refreshCalendars(
}
export async function refreshSingularCalendar(
dispatch: ThunkDispatch<any, any, any>,
dispatch: AppDispatch,
calendar: Calendar,
calendarRange: { start: Date; end: Date },
calType?: "temp"