Move SessionWrapper to common package

This commit is contained in:
Brandon Thomas committed 2022-02-13 23:03:06 -05:00
1 parent 8775ddee94
commit f5f577bdec
48 files changed
+47 -47

No files matched your search

+2 -2
View File
@@ -8,8 +8,8 @@ import { Language } from '@storyteller/components/src/i18n/Language';
import { BrowserRouter, Route, Switch } from "react-router-dom";
import { NewVocodesContainer } from './v2/view/NewVocodesContainer';
import { OldVocodesContainer } from './v1/OldVocodesContainer';
import { SessionStateResponse } from './session/SessionState';
import { SessionWrapper } from './session/SessionWrapper';
import { SessionStateResponse } from '@storyteller/components/src/session/SessionState';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { TtsInferenceJob, TtsInferenceJobStateResponsePayload } from '@storyteller/components/src/jobs/TtsInferenceJobs';
import { W2lInferenceJob, W2lInferenceJobStateResponsePayload } from '@storyteller/components/src/jobs/W2lInferenceJobs';
import { TtsModelUploadJob, TtsModelUploadJobStateResponsePayload } from '@storyteller/components/src/jobs/TtsModelUploadJobs';
@@ -1,7 +1,7 @@
import React from 'react';
import { MigrationTopNavSession } from './MigrationTopNav_Session';
import { MigrationTopNavVersionSwitch } from './MigrationTopNav_VersionSwitch';
import { SessionWrapper } from '../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
interface Props {
sessionWrapper: SessionWrapper,
@@ -1,5 +1,5 @@
import React from 'react';
import { SessionWrapper } from '../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { Link, useHistory } from 'react-router-dom';
import { ApiConfig } from '@storyteller/components';
import { t } from 'i18next';
@@ -1,5 +1,5 @@
import React from 'react';
import { SessionWrapper } from '../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { Link } from 'react-router-dom';
import './_css/footer.scss'
+1 -1
View File
@@ -1,5 +1,5 @@
import React, { useState } from 'react';
import { SessionWrapper } from '../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { Link } from 'react-router-dom';
import { MigrationTopNavSession } from '../../migration/MigrationTopNav_Session';
import { FrontendUrlConfig } from '../../common/FrontendUrlConfig';
@@ -9,7 +9,7 @@ import { NewFooterNavFc } from './NewFooterNavFc';
import { NewTopNavFc } from './NewTopNavFc';
import { ProfileEditFc } from './profile/profile_edit/ProfileEditFc';
import { ProfileFc } from './profile/profile_view/ProfileFc';
import { SessionWrapper } from '../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { SignupComponent } from './signup/SignupComponent';
import { Switch, Route } from 'react-router-dom';
import { TermsFc } from './about/terms_page/TermsFc';
@@ -1,5 +1,5 @@
import React, { useState } from 'react';
import { SessionWrapper } from '../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { Link, useHistory } from "react-router-dom";
import { v4 as uuidv4 } from 'uuid';
import { CreateCategory, CreateCategoryIsError, CreateCategoryRequest } from '../../api/category/CreateCategory';
@@ -1,5 +1,5 @@
import React from 'react';
import { SessionWrapper } from '../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { Link } from "react-router-dom";
import { DiscordLink } from '../_common/DiscordLink';
import { FrontendUrlConfig } from '../../../common/FrontendUrlConfig';
@@ -1,6 +1,6 @@
import React, { useState, useEffect, useRef } from 'react';
import { ApiConfig } from '@storyteller/components';
import { SessionWrapper } from '../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { Link } from "react-router-dom";
import { GravatarFc } from '../_common/GravatarFc';
@@ -1,7 +1,7 @@
import React, { useCallback, useEffect, useState } from 'react';
import { Link } from 'react-router-dom';
import { FrontendUrlConfig } from '../../../common/FrontendUrlConfig';
import { SessionWrapper } from '../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { GetLeaderboard, GetLeaderboardIsErr, GetLeaderboardIsOk, Leaderboard, LeaderboardEntryForList, LeaderboardLookupError } from '../../api/misc/GetLeaderboard';
import { GravatarFc } from '../_common/GravatarFc';
@@ -1,5 +1,5 @@
import React, { useState } from 'react';
import { SessionWrapper } from '../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { useHistory } from "react-router-dom";
import { UserIcon } from '../_icons/UserIcon';
import { EnvelopeIcon } from '../_icons/EnvelopeIcon';
@@ -3,7 +3,7 @@ import { BackLink } from '../../_common/BackLink';
import { Category, GetCategory, GetCategoryIsError, GetCategoryIsOk } from '../../../api/category/GetCategory';
import { FrontendUrlConfig } from '../../../../common/FrontendUrlConfig';
import { Link, useHistory } from 'react-router-dom';
import { SessionWrapper } from '../../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { useParams } from 'react-router-dom';
import { SetCategoryDeletionState, SetCategoryDeletionStateIsError, SetCategoryDeletionStateIsSuccess } from '../../../api/moderation/category/SetCategoryDeletionState';
@@ -3,7 +3,7 @@ import { BackLink } from '../../_common/BackLink';
import { Category, GetCategory, GetCategoryIsError, GetCategoryIsOk } from '../../../api/category/GetCategory';
import { FrontendUrlConfig } from '../../../../common/FrontendUrlConfig';
import { Link, useHistory } from 'react-router-dom';
import { SessionWrapper } from '../../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { useParams } from 'react-router-dom';
import { EditCategory, EditCategoryIsError, EditCategoryIsSuccess, EditCategoryRequest } from '../../../api/moderation/category/EditCategory';
import { ListTtsCategories, ListTtsCategoriesIsError, ListTtsCategoriesIsOk, TtsCategory } from '../../../api/category/ListTtsCategories';
@@ -1,5 +1,5 @@
import React, { useCallback, useEffect, useState } from 'react';
import { SessionWrapper } from '../../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { FrontendUrlConfig } from '../../../../common/FrontendUrlConfig';
import { BackLink } from '../../_common/BackLink';
import { ListTtsCategoriesForModeration, ListTtsCategoriesForModerationIsError, ListTtsCategoriesForModerationIsOk, ListTtsCategoriesTriState, ModerationTtsCategory } from '../../../api/moderation/category/ListTtsCategoriesForModeration';
@@ -1,7 +1,7 @@
import React, { useEffect, useState } from 'react';
import { Link, useHistory } from 'react-router-dom';
import { ApiConfig } from '@storyteller/components';
import { SessionWrapper } from '../../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { formatDistance } from 'date-fns';
import { BackLink } from '../../_common/BackLink';
import { FrontendUrlConfig } from '../../../../common/FrontendUrlConfig';
@@ -1,5 +1,5 @@
import React, { useCallback, useEffect, useState } from 'react';
import { SessionWrapper } from '../../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { FrontendUrlConfig } from '../../../../common/FrontendUrlConfig';
import { BackLink } from '../../_common/BackLink';
import { GetTtsInferenceStats, GetTtsInferenceStatsIsOk } from '../../../api/moderation/GetTtsInferenceStats';
@@ -1,7 +1,7 @@
import React from 'react';
import { Link } from 'react-router-dom';
import { FrontendUrlConfig } from '../../../../common/FrontendUrlConfig';
import { SessionWrapper } from '../../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
interface Props {
sessionWrapper: SessionWrapper,
@@ -1,6 +1,6 @@
import React, { useCallback, useEffect, useState } from 'react';
import { Link } from 'react-router-dom';
import { SessionWrapper } from '../../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { formatDistance } from 'date-fns';
import { FrontendUrlConfig } from '../../../../common/FrontendUrlConfig';
import { GravatarFc } from '../../_common/GravatarFc';
@@ -1,6 +1,6 @@
import React, { useCallback, useEffect, useState } from 'react';
import { Link } from 'react-router-dom';
import { SessionWrapper } from '../../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { GetUserList, GetUserListIsOk, UserForList } from '../../../api/moderation/GetUserList';
import { formatDistance } from 'date-fns';
import { FrontendUrlConfig } from '../../../../common/FrontendUrlConfig';
@@ -1,7 +1,7 @@
import React, { useEffect, useState } from 'react';
import { ApiConfig } from '@storyteller/components';
import { Link, useHistory, useParams } from 'react-router-dom';
import { SessionWrapper } from '../../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { formatDistance } from 'date-fns';
interface Props {
@@ -1,5 +1,5 @@
import React, { useCallback, useEffect, useState } from 'react';
import { SessionWrapper } from '../../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { FrontendUrlConfig } from '../../../../common/FrontendUrlConfig';
import { BackLink } from '../../_common/BackLink';
import { GetVoiceInventoryStats, GetVoiceInventoryStatsIsOk } from '../../../api/moderation/GetVoiceInventoryStats';
@@ -1,7 +1,7 @@
import React from 'react';
import { BackLink } from '../_common/BackLink';
import { FrontendUrlConfig } from '../../../common/FrontendUrlConfig';
import { SessionWrapper } from '../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { PATRONS } from '../../../data/Patrons';
import { PatreonLink } from '../_common/PatreonLink';
@@ -1,7 +1,7 @@
import React, { useCallback, useEffect, useState } from 'react';
import { ApiConfig } from '@storyteller/components';
import { useHistory } from 'react-router-dom';
import { SessionWrapper } from '../../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { useParams } from 'react-router-dom';
import { GetUserByUsername, GetUserByUsernameIsOk, User } from '../../../api/user/GetUserByUsername';
import { BackLink } from '../../_common/BackLink';
@@ -1,7 +1,7 @@
import React, { useEffect, useState } from 'react';
import { ApiConfig } from '@storyteller/components';
import { useHistory } from 'react-router-dom';
import { SessionWrapper } from '../../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { useParams } from 'react-router-dom';
import { VisibleIconFc } from '../../_icons/VisibleIcon';
import { HiddenIconFc } from '../../_icons/HiddenIcon';
@@ -5,7 +5,7 @@ import { ProfileTtsInferenceResultsListFc } from './Profile_TtsInferenceResultLi
import { ProfileTtsModelListFc } from './Profile_TtsModelListFc';
import { ProfileW2lInferenceResultsListFc } from './Profile_W2lInferenceResultListFc';
import { ProfileW2lTemplateListFc } from './Profile_W2lTemplateListFc';
import { SessionWrapper } from '../../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { useParams } from 'react-router-dom';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { faDiscord, faFirefox, faGithub, faTwitch, faTwitter } from '@fortawesome/free-brands-svg-icons';
@@ -3,7 +3,7 @@ import { AsteriskIcon } from '../_icons/AsteriskIcon';
import { EnvelopeIcon } from '../_icons/EnvelopeIcon';
import { Link } from 'react-router-dom';
import { Mode } from '../../../AppMode';
import { SessionWrapper } from '../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { UserIcon } from '../_icons/UserIcon';
import { CreateAccount, CreateAccountIsError, CreateAccountIsSuccess } from '../../api/user/CreateAccount';
@@ -6,7 +6,7 @@ import { FrontendUrlConfig } from '../../../../common/FrontendUrlConfig';
import { GetTtsModel, GetTtsModelIsErr, GetTtsModelIsOk, TtsModel, TtsModelLookupError } from '@storyteller/components/src/api/tts/GetTtsModel';
import { ListTtsCategories, ListTtsCategoriesIsError, ListTtsCategoriesIsOk, TtsCategory } from '../../../api/category/ListTtsCategories';
import { ListTtsCategoriesForModel, ListTtsCategoriesForModelIsError, ListTtsCategoriesForModelIsOk, TtsModelCategory } from '../../../api/category/ListTtsCategoriesForModel';
import { SessionWrapper } from '../../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { faExclamationCircle, faTimes } from '@fortawesome/free-solid-svg-icons';
import { useParams } from 'react-router-dom';
@@ -1,7 +1,7 @@
import React, { useState, useEffect, useCallback } from 'react';
import { ApiConfig } from '@storyteller/components';
import { FrontendUrlConfig } from '../../../../common/FrontendUrlConfig';
import { SessionWrapper } from '../../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { useParams, Link, useHistory } from 'react-router-dom';
import { BackLink } from '../../_common/BackLink';
@@ -1,6 +1,6 @@
import React, { useState, useEffect, useCallback } from 'react';
import { ApiConfig } from '@storyteller/components';
import { SessionWrapper } from '../../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { TtsInferenceJob } from '@storyteller/components/src/jobs/TtsInferenceJobs';
import { useParams, useHistory } from 'react-router-dom';
import { FrontendUrlConfig } from '../../../../common/FrontendUrlConfig';
@@ -5,7 +5,7 @@ import { SessionTtsInferenceResultListFc } from '../../_common/SessionTtsInferen
import { SessionTtsModelUploadResultListFc } from '../../_common/SessionTtsModelUploadResultsListFc';
import { SessionW2lInferenceResultListFc } from '../../_common/SessionW2lInferenceResultsListFc';
import { SessionW2lTemplateUploadResultListFc } from '../../_common/SessionW2lTemplateUploadResultsListFc';
import { SessionWrapper } from '../../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { TtsInferenceJob } from '@storyteller/components/src/jobs/TtsInferenceJobs';
import { TtsModelUploadJob } from '@storyteller/components/src/jobs/TtsModelUploadJobs';
import { W2lInferenceJob } from '@storyteller/components/src/jobs/W2lInferenceJobs';
@@ -2,7 +2,7 @@ import React, { useState, useEffect, useCallback } from 'react';
import { ApiConfig } from '@storyteller/components';
import { EnqueueJobResponsePayload } from '../tts_model_list/TtsModelListFc';
import { SessionTtsInferenceResultListFc } from '../../_common/SessionTtsInferenceResultsListFc';
import { SessionWrapper } from '../../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { TtsInferenceJob } from '@storyteller/components/src/jobs/TtsInferenceJobs';
import { useParams, Link } from 'react-router-dom';
import { v4 as uuidv4 } from 'uuid';
@@ -1,6 +1,6 @@
import React, { useState, useEffect } from 'react';
import { ApiConfig } from '@storyteller/components';
import { SessionWrapper } from '../../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { useParams, Link, useHistory } from 'react-router-dom';
import { GravatarFc } from '../../_common/GravatarFc';
import { FrontendUrlConfig } from '../../../../common/FrontendUrlConfig';
@@ -1,6 +1,6 @@
import React, { useState, useEffect, useCallback } from 'react';
import { ApiConfig } from '@storyteller/components';
import { SessionWrapper } from '../../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { useParams, Link, useHistory } from 'react-router-dom';
import { FrontendUrlConfig } from '../../../../common/FrontendUrlConfig';
import { VisibleIconFc } from '../../_icons/VisibleIcon';
@@ -1,5 +1,5 @@
import React, { useState, useEffect, useCallback } from 'react';
import { SessionWrapper } from '../../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { useParams, Link } from 'react-router-dom';
import { GravatarFc } from '../../_common/GravatarFc';
import { SpectrogramFc } from './SpectrogramFc';
@@ -1,6 +1,6 @@
import React from 'react';
import { ApiConfig } from '@storyteller/components';
import { SessionWrapper } from '../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { TtsModelUploadJob } from '@storyteller/components/src/jobs/TtsModelUploadJobs';
import { W2lTemplateUploadJob } from '@storyteller/components/src/jobs/W2lTemplateUploadJobs';
import { v4 } from 'uuid';
@@ -1,7 +1,7 @@
import React, { useState } from 'react';
import { ApiConfig } from '@storyteller/components';
import { SessionTtsModelUploadResultListFc } from '../_common/SessionTtsModelUploadResultsListFc';
import { SessionWrapper } from '../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { TtsModelUploadJob } from '@storyteller/components/src/jobs/TtsModelUploadJobs';
import { useHistory } from "react-router-dom";
import { v4 as uuidv4 } from 'uuid';
@@ -1,6 +1,6 @@
import React, { useState } from 'react';
import { ApiConfig } from '@storyteller/components';
import { SessionWrapper } from '../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { W2lTemplateUploadJob } from '@storyteller/components/src/jobs/W2lTemplateUploadJobs';
import { useHistory } from "react-router-dom";
import { v4 as uuidv4 } from 'uuid';
@@ -1,7 +1,7 @@
import React, { useState } from 'react';
import { ApiConfig } from '@storyteller/components';
import { SessionW2lTemplateUploadResultListFc } from '../_common/SessionW2lTemplateUploadResultsListFc';
import { SessionWrapper } from '../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { W2lTemplateUploadJob } from '@storyteller/components/src/jobs/W2lTemplateUploadJobs';
import { useHistory } from "react-router-dom";
import { v4 as uuidv4 } from 'uuid';
@@ -2,7 +2,7 @@
import React, { useState, useEffect, useCallback } from 'react';
import { ApiConfig } from '@storyteller/components';
import { FrontendUrlConfig } from '../../../../common/FrontendUrlConfig';
import { SessionWrapper } from '../../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { useParams, Link, useHistory } from 'react-router-dom';
import { GetW2lResult, GetW2lResultIsOk, W2lResult } from '../../../api/w2l/GetW2lResult';
@@ -1,6 +1,6 @@
import React, { useState, useEffect, useCallback } from 'react';
import { ApiConfig } from '@storyteller/components';
import { SessionWrapper } from '../../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { useParams, Link, useHistory } from 'react-router-dom';
import { FrontendUrlConfig } from '../../../../common/FrontendUrlConfig';
import { VisibleIconFc } from '../../_icons/VisibleIcon';
@@ -1,6 +1,6 @@
import React, { useState, useEffect, useCallback } from 'react';
import { GravatarFc } from '../../_common/GravatarFc';
import { SessionWrapper } from '../../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { useParams, Link } from 'react-router-dom';
import { ReportDiscordLinkFc } from '../../_common/DiscordReportLinkFc';
import { BucketConfig } from '@storyteller/components/src/api/BucketConfig';
@@ -1,7 +1,7 @@
import React, { useState, useEffect, useCallback } from 'react';
import { ApiConfig } from '@storyteller/components';
import { FrontendUrlConfig } from '../../../../common/FrontendUrlConfig';
import { SessionWrapper } from '../../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { useParams, Link, useHistory } from 'react-router-dom';
import { GetW2lTemplate, GetW2lTemplateIsOk, W2lTemplate } from '../../../api/w2l/GetW2lTemplate';
import { GetW2lTemplateUseCount } from '../../../api/w2l/GetW2lTemplateUseCount';
@@ -1,7 +1,7 @@
import React, { useState, useEffect, useCallback } from 'react';
import { ApiConfig } from '@storyteller/components';
import { FrontendUrlConfig } from '../../../../common/FrontendUrlConfig';
import { SessionWrapper } from '../../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { useParams, Link, useHistory } from 'react-router-dom';
import { GetW2lTemplate, GetW2lTemplateIsOk, W2lTemplate } from '../../../api/w2l/GetW2lTemplate';
import { GetW2lTemplateUseCount } from '../../../api/w2l/GetW2lTemplateUseCount';
@@ -1,6 +1,6 @@
import React, { useState, useEffect, useCallback } from 'react';
import { ApiConfig } from '@storyteller/components';
import { SessionWrapper } from '../../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { useParams, useHistory } from 'react-router-dom';
import { FrontendUrlConfig } from '../../../../common/FrontendUrlConfig';
import { VisibleIconFc } from '../../_icons/VisibleIcon';
@@ -1,6 +1,6 @@
import React, { useState, useEffect } from 'react';
import { ApiConfig } from '@storyteller/components';
import { SessionWrapper } from '../../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { Link } from "react-router-dom";
//import { getRandomInt } from '../../../../v1/api/Utils';
import { BucketConfig } from '@storyteller/components/src/api/BucketConfig';
@@ -1,7 +1,7 @@
import React, { useState, useEffect, useCallback } from 'react';
import axios from 'axios';
import { ApiConfig } from '@storyteller/components';
import { SessionWrapper } from '../../../../session/SessionWrapper';
import { SessionWrapper } from '@storyteller/components/src/session/SessionWrapper';
import { W2lInferenceJob } from '../../../../App';
import { useParams, Link } from 'react-router-dom';
import { v4 as uuidv4 } from 'uuid';