From cbf7e21f655995bb349a06042f5496f96f8747db Mon Sep 17 00:00:00 2001 From: amendelsohn Date: Wed, 29 May 2024 11:08:55 -0700 Subject: [PATCH 1/4] Move EditTrackForm to edit-track component directory --- .../screens/UploadCompleteScreen.tsx | 1 - .../create-playlist/PlaylistForm.tsx | 2 +- .../data-entry/AccessAndSaleTriggerLegacy.tsx | 10 +-- .../data-entry/ReleaseDateTriggerLegacy.tsx | 2 +- .../StemsAndDownloadsTriggerLegacy.tsx | 6 +- .../edit-track}/EditTrackForm.module.css | 0 .../edit-track}/EditTrackForm.tsx | 76 ++++--------------- .../edit-track}/components/PreviewButton.tsx | 2 +- .../fields/AccessAndSaleField.module.css | 0 .../edit-track}/fields/AccessAndSaleField.tsx | 10 ++- .../fields/AccessAndSaleMenuFields.tsx | 2 +- .../fields/AttributionField.module.css | 0 .../edit-track}/fields/AttributionField.tsx | 2 +- .../fields/BoxedTextField.module.css | 0 .../edit-track}/fields/BoxedTextField.tsx | 0 .../fields/CollectionTrackField.module.css | 0 .../fields/CollectionTrackField.tsx | 4 +- .../fields/CollectionTrackFieldArray.tsx | 2 +- .../fields/DatePickerField.module.css | 0 .../edit-track}/fields/DatePickerField.tsx | 0 .../edit-track}/fields/ModalField.module.css | 0 .../edit-track}/fields/ModalField.tsx | 0 .../fields/MultiTrackSidebar.module.css | 0 .../edit-track}/fields/MultiTrackSidebar.tsx | 9 ++- .../fields/ReleaseDateField.module.css | 0 .../edit-track}/fields/ReleaseDateField.tsx | 4 +- .../fields/ReleaseDateFieldLegacy.module.css | 0 .../fields/ReleaseDateFieldLegacy.tsx | 4 +- .../RemixSettingsField.module.css | 0 .../RemixSettingsField/RemixSettingsField.tsx | 4 +- .../RemixSettingsMenuFields.tsx | 0 .../fields/RemixSettingsField/TrackInfo.tsx | 0 .../fields/RemixSettingsField/index.ts | 0 .../fields/RemixSettingsField/types.ts | 0 .../edit-track}/fields/SelectGenreField.tsx | 0 .../edit-track}/fields/SelectMoodField.tsx | 0 .../fields/StemFilesView.module.css | 0 .../edit-track}/fields/StemFilesView.tsx | 0 .../StemsAndDownloadsCollectionsField.tsx | 0 .../fields/StemsAndDownloadsField.module.css | 0 .../fields/StemsAndDownloadsField.tsx | 2 +- .../fields/StemsAndDownloadsMenuFields.tsx | 2 +- .../fields/SwitchRowField.module.css | 0 .../edit-track}/fields/SwitchRowField.tsx | 0 .../fields/TrackMetadataFields.module.css | 0 .../fields/TrackMetadataFields.tsx | 2 +- .../edit-track}/fields/TrackNameField.tsx | 0 .../DownloadAvailability.tsx | 0 .../DownloadPriceField.tsx | 0 .../edit-track}/fields/helpers.ts | 0 .../HiddenAvailabilityFields.module.css | 0 .../HiddenAvailabilityFields.tsx | 0 .../SpecialAccessFields.module.css | 0 .../SpecialAccessFields.tsx | 0 .../CollectibleGatedDescription.tsx | 0 .../CollectibleGatedFields.module.css | 0 .../CollectibleGatedFields.tsx | 0 .../CollectibleGatedRadioField.tsx | 0 .../UsdcPurchaseFields.tsx | 0 .../UsdcPurchaseGatedRadioField.module.css | 0 .../UsdcPurchaseGatedRadioField.tsx | 0 .../edit-track}/fields/types.ts | 0 .../edit-track}/utils/computeLicenseIcons.ts | 0 .../utils/uploadPreviewContext.tsx | 0 .../web/src/pages/upload-page/UploadPage.tsx | 3 +- .../upload-page/forms/EditCollectionForm.tsx | 12 +-- .../forms/EditTrackFormForUpload.tsx | 64 ++++++++++++++++ .../src/pages/upload-page/pages/EditPage.tsx | 8 +- 68 files changed, 131 insertions(+), 102 deletions(-) rename packages/web/src/{pages/upload-page/forms => components/edit-track}/EditTrackForm.module.css (100%) rename packages/web/src/{pages/upload-page/forms => components/edit-track}/EditTrackForm.tsx (71%) rename packages/web/src/{pages/upload-page => components/edit-track}/components/PreviewButton.tsx (95%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/AccessAndSaleField.module.css (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/AccessAndSaleField.tsx (99%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/AccessAndSaleMenuFields.tsx (98%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/AttributionField.module.css (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/AttributionField.tsx (99%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/BoxedTextField.module.css (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/BoxedTextField.tsx (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/CollectionTrackField.module.css (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/CollectionTrackField.tsx (94%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/CollectionTrackFieldArray.tsx (96%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/DatePickerField.module.css (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/DatePickerField.tsx (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/ModalField.module.css (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/ModalField.tsx (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/MultiTrackSidebar.module.css (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/MultiTrackSidebar.tsx (96%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/ReleaseDateField.module.css (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/ReleaseDateField.tsx (98%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/ReleaseDateFieldLegacy.module.css (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/ReleaseDateFieldLegacy.tsx (94%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/RemixSettingsField/RemixSettingsField.module.css (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/RemixSettingsField/RemixSettingsField.tsx (96%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/RemixSettingsField/RemixSettingsMenuFields.tsx (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/RemixSettingsField/TrackInfo.tsx (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/RemixSettingsField/index.ts (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/RemixSettingsField/types.ts (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/SelectGenreField.tsx (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/SelectMoodField.tsx (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/StemFilesView.module.css (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/StemFilesView.tsx (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/StemsAndDownloadsCollectionsField.tsx (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/StemsAndDownloadsField.module.css (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/StemsAndDownloadsField.tsx (99%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/StemsAndDownloadsMenuFields.tsx (99%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/SwitchRowField.module.css (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/SwitchRowField.tsx (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/TrackMetadataFields.module.css (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/TrackMetadataFields.tsx (96%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/TrackNameField.tsx (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/download-availability/DownloadAvailability.tsx (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/download-availability/DownloadPriceField.tsx (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/helpers.ts (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/stream-availability/HiddenAvailabilityFields.module.css (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/stream-availability/HiddenAvailabilityFields.tsx (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/stream-availability/SpecialAccessFields.module.css (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/stream-availability/SpecialAccessFields.tsx (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/stream-availability/collectible-gated/CollectibleGatedDescription.tsx (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/stream-availability/collectible-gated/CollectibleGatedFields.module.css (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/stream-availability/collectible-gated/CollectibleGatedFields.tsx (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/stream-availability/collectible-gated/CollectibleGatedRadioField.tsx (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/stream-availability/usdc-purchase-gated/UsdcPurchaseFields.tsx (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/stream-availability/usdc-purchase-gated/UsdcPurchaseGatedRadioField.module.css (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/stream-availability/usdc-purchase-gated/UsdcPurchaseGatedRadioField.tsx (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/fields/types.ts (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/utils/computeLicenseIcons.ts (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/utils/uploadPreviewContext.tsx (100%) create mode 100644 packages/web/src/pages/upload-page/forms/EditTrackFormForUpload.tsx diff --git a/packages/mobile/src/screens/upload-screen/screens/UploadCompleteScreen.tsx b/packages/mobile/src/screens/upload-screen/screens/UploadCompleteScreen.tsx index b4d46455b8b..38d2ed8a337 100644 --- a/packages/mobile/src/screens/upload-screen/screens/UploadCompleteScreen.tsx +++ b/packages/mobile/src/screens/upload-screen/screens/UploadCompleteScreen.tsx @@ -76,7 +76,6 @@ const useStyles = makeStyles(({ spacing }) => ({ export const UploadCompleteScreen = () => { const styles = useStyles() - // const track = { title: 'test title', permalink: '/dylan/test-track-6' } const track = useSelector( (state: CommonState) => getTracks(state)?.[0]?.metadata ) diff --git a/packages/web/src/components/create-playlist/PlaylistForm.tsx b/packages/web/src/components/create-playlist/PlaylistForm.tsx index 2c240acc745..21afa449452 100644 --- a/packages/web/src/components/create-playlist/PlaylistForm.tsx +++ b/packages/web/src/components/create-playlist/PlaylistForm.tsx @@ -5,9 +5,9 @@ import { Flex } from '@audius/harmony' import { Form, Formik } from 'formik' import { toFormikValidationSchema } from 'zod-formik-adapter' +import { AccessAndSaleField } from 'components/edit-track/fields/AccessAndSaleField' import { ArtworkField, TextAreaField, TextField } from 'components/form-fields' import { useCollectionCoverArt } from 'hooks/useCollectionCoverArt' -import { AccessAndSaleField } from 'pages/upload-page/fields/AccessAndSaleField' import { EditActions } from './FormActions' diff --git a/packages/web/src/components/data-entry/AccessAndSaleTriggerLegacy.tsx b/packages/web/src/components/data-entry/AccessAndSaleTriggerLegacy.tsx index 3b3f4f966c6..6f1b20616b4 100644 --- a/packages/web/src/components/data-entry/AccessAndSaleTriggerLegacy.tsx +++ b/packages/web/src/components/data-entry/AccessAndSaleTriggerLegacy.tsx @@ -28,10 +28,9 @@ import { set, get } from 'lodash' import { useSelector } from 'react-redux' import { toFormikValidationSchema } from 'zod-formik-adapter' -import { defaultFieldVisibility } from 'pages/track-page/utils' -import { AccessAndSaleFormSchema } from 'pages/upload-page/fields/AccessAndSaleField' -import { AccessAndSaleMenuFields } from 'pages/upload-page/fields/AccessAndSaleMenuFields' -import { getCombinedDefaultGatedConditionValues } from 'pages/upload-page/fields/helpers' +import { AccessAndSaleFormSchema } from 'components/edit-track/fields/AccessAndSaleField' +import { AccessAndSaleMenuFields } from 'components/edit-track/fields/AccessAndSaleMenuFields' +import { getCombinedDefaultGatedConditionValues } from 'components/edit-track/fields/helpers' import { AccessAndSaleFormValues, DOWNLOAD_CONDITIONS, @@ -48,7 +47,8 @@ import { STREAM_AVAILABILITY_TYPE, STREAM_CONDITIONS, SpecialAccessType -} from 'pages/upload-page/fields/types' +} from 'components/edit-track/fields/types' +import { defaultFieldVisibility } from 'pages/track-page/utils' import { ContextualMenu } from './ContextualMenu' diff --git a/packages/web/src/components/data-entry/ReleaseDateTriggerLegacy.tsx b/packages/web/src/components/data-entry/ReleaseDateTriggerLegacy.tsx index ed2050fb65e..ac724c21f20 100644 --- a/packages/web/src/components/data-entry/ReleaseDateTriggerLegacy.tsx +++ b/packages/web/src/components/data-entry/ReleaseDateTriggerLegacy.tsx @@ -16,7 +16,7 @@ import { mergeDateTimeValues, ReleaseDateFormValues, timeValidationSchema -} from 'pages/upload-page/fields/ReleaseDateField' +} from 'components/edit-track/fields/ReleaseDateField' import { formatCalendarTime } from 'utils/dateUtils' import { ContextualMenu } from './ContextualMenu' diff --git a/packages/web/src/components/data-entry/StemsAndDownloadsTriggerLegacy.tsx b/packages/web/src/components/data-entry/StemsAndDownloadsTriggerLegacy.tsx index 5954ca8771c..3534ed113fd 100644 --- a/packages/web/src/components/data-entry/StemsAndDownloadsTriggerLegacy.tsx +++ b/packages/web/src/components/data-entry/StemsAndDownloadsTriggerLegacy.tsx @@ -23,8 +23,8 @@ import { toFormikValidationSchema } from 'zod-formik-adapter' import { StemsAndDownloadsMenuFields, stemsAndDownloadsSchema -} from 'pages/upload-page/fields/StemsAndDownloadsMenuFields' -import { getCombinedDefaultGatedConditionValues } from 'pages/upload-page/fields/helpers' +} from 'components/edit-track/fields/StemsAndDownloadsMenuFields' +import { getCombinedDefaultGatedConditionValues } from 'components/edit-track/fields/helpers' import { DOWNLOAD_AVAILABILITY_TYPE, DOWNLOAD_CONDITIONS, @@ -37,7 +37,7 @@ import { STEMS, STREAM_CONDITIONS, StemsAndDownloadsFormValues -} from 'pages/upload-page/fields/types' +} from 'components/edit-track/fields/types' import { ContextualMenu } from './ContextualMenu' import styles from './StemsAndDownloadsTriggerLegacy.module.css' diff --git a/packages/web/src/pages/upload-page/forms/EditTrackForm.module.css b/packages/web/src/components/edit-track/EditTrackForm.module.css similarity index 100% rename from packages/web/src/pages/upload-page/forms/EditTrackForm.module.css rename to packages/web/src/components/edit-track/EditTrackForm.module.css diff --git a/packages/web/src/pages/upload-page/forms/EditTrackForm.tsx b/packages/web/src/components/edit-track/EditTrackForm.tsx similarity index 71% rename from packages/web/src/pages/upload-page/forms/EditTrackForm.tsx rename to packages/web/src/components/edit-track/EditTrackForm.tsx index 16513c62cf8..35a2d133bdf 100644 --- a/packages/web/src/pages/upload-page/forms/EditTrackForm.tsx +++ b/packages/web/src/components/edit-track/EditTrackForm.tsx @@ -1,4 +1,4 @@ -import { useCallback, useContext, useMemo, useState } from 'react' +import { useCallback, useContext, useState } from 'react' import { TrackMetadataFormSchema } from '@audius/common/schemas' import { FeatureFlags } from '@audius/common/services' @@ -10,7 +10,6 @@ import { } from '@audius/harmony' import cn from 'classnames' import { Form, Formik, FormikProps, useField } from 'formik' -import moment from 'moment' import { useUnmount } from 'react-use' import { z } from 'zod' import { toFormikValidationSchema } from 'zod-formik-adapter' @@ -21,20 +20,19 @@ import { NavigationPrompt } from 'components/navigation-prompt/NavigationPrompt' import { useFlag } from 'hooks/useRemoteConfig' import { UploadFormScrollContext } from 'pages/upload-page/UploadPage' -import { AnchoredSubmitRow } from '../components/AnchoredSubmitRow' -import { PreviewButton } from '../components/PreviewButton' -import { AccessAndSaleField } from '../fields/AccessAndSaleField' -import { AttributionField } from '../fields/AttributionField' -import { MultiTrackSidebar } from '../fields/MultiTrackSidebar' -import { ReleaseDateField } from '../fields/ReleaseDateField' -import { ReleaseDateFieldLegacy } from '../fields/ReleaseDateFieldLegacy' -import { RemixSettingsField } from '../fields/RemixSettingsField' -import { StemsAndDownloadsField } from '../fields/StemsAndDownloadsField' -import { TrackMetadataFields } from '../fields/TrackMetadataFields' -import { defaultHiddenFields } from '../fields/stream-availability/HiddenAvailabilityFields' -import { TrackEditFormValues, TrackFormState } from '../types' +import { AnchoredSubmitRow } from '../../pages/upload-page/components/AnchoredSubmitRow' +import { TrackEditFormValues } from '../../pages/upload-page/types' import styles from './EditTrackForm.module.css' +import { PreviewButton } from './components/PreviewButton' +import { AccessAndSaleField } from './fields/AccessAndSaleField' +import { AttributionField } from './fields/AttributionField' +import { MultiTrackSidebar } from './fields/MultiTrackSidebar' +import { ReleaseDateField } from './fields/ReleaseDateField' +import { ReleaseDateFieldLegacy } from './fields/ReleaseDateFieldLegacy' +import { RemixSettingsField } from './fields/RemixSettingsField' +import { StemsAndDownloadsField } from './fields/StemsAndDownloadsField' +import { TrackMetadataFields } from './fields/TrackMetadataFields' const messages = { multiTrackCount: (index: number, total: number) => @@ -51,8 +49,8 @@ const messages = { } type EditTrackFormProps = { - formState: TrackFormState - onContinue: (formState: TrackFormState) => void + initialValues: TrackEditFormValues + onSubmit: (values: TrackEditFormValues) => void } const EditFormValidationSchema = z.object({ @@ -60,51 +58,7 @@ const EditFormValidationSchema = z.object({ }) export const EditTrackForm = (props: EditTrackFormProps) => { - const { formState, onContinue } = props - const { tracks } = formState - - const initialValues: TrackEditFormValues = useMemo( - () => ({ - trackMetadatasIndex: 0, - tracks, - trackMetadatas: tracks.map((track) => ({ - ...track.metadata, - description: '', - releaseDate: new Date(moment().toString()), - tags: '', - field_visibility: { - ...defaultHiddenFields, - remixes: true - }, - licenseType: { - allowAttribution: null, - commercialUse: null, - derivativeWorks: null - }, - stems: [], - isrc: '', - iswc: '' - })) - }), - [tracks] - ) - - const onSubmit = useCallback( - (values: TrackEditFormValues) => { - const tracksForUpload = tracks.map((track, i) => { - const metadata = values.trackMetadatas[i] - const { licenseType: ignoredLicenseType, ...restMetadata } = metadata - return { - ...track, - metadata: { - ...restMetadata - } - } - }) - onContinue({ ...formState, tracks: tracksForUpload }) - }, - [formState, onContinue, tracks] - ) + const { initialValues, onSubmit } = props return ( diff --git a/packages/web/src/pages/upload-page/components/PreviewButton.tsx b/packages/web/src/components/edit-track/components/PreviewButton.tsx similarity index 95% rename from packages/web/src/pages/upload-page/components/PreviewButton.tsx rename to packages/web/src/components/edit-track/components/PreviewButton.tsx index 123944788e6..38cd96fd15d 100644 --- a/packages/web/src/pages/upload-page/components/PreviewButton.tsx +++ b/packages/web/src/components/edit-track/components/PreviewButton.tsx @@ -3,7 +3,7 @@ import { useCallback, useContext, useEffect, useState } from 'react' import { IconPause, IconPlay, PlainButton } from '@audius/harmony' import { useField } from 'formik' -import { CollectionTrackForUpload } from '../types' +import { CollectionTrackForUpload } from '../../../pages/upload-page/types' import { UploadPreviewContext } from '../utils/uploadPreviewContext' const messages = { diff --git a/packages/web/src/pages/upload-page/fields/AccessAndSaleField.module.css b/packages/web/src/components/edit-track/fields/AccessAndSaleField.module.css similarity index 100% rename from packages/web/src/pages/upload-page/fields/AccessAndSaleField.module.css rename to packages/web/src/components/edit-track/fields/AccessAndSaleField.module.css diff --git a/packages/web/src/pages/upload-page/fields/AccessAndSaleField.tsx b/packages/web/src/components/edit-track/fields/AccessAndSaleField.tsx similarity index 99% rename from packages/web/src/pages/upload-page/fields/AccessAndSaleField.tsx rename to packages/web/src/components/edit-track/fields/AccessAndSaleField.tsx index e05b967a1e0..a80c3edd04b 100644 --- a/packages/web/src/pages/upload-page/fields/AccessAndSaleField.tsx +++ b/packages/web/src/components/edit-track/fields/AccessAndSaleField.tsx @@ -40,8 +40,14 @@ import { import DynamicImage from 'components/dynamic-image/DynamicImage' import { defaultFieldVisibility } from 'pages/track-page/utils' -import { useIndexedField, useTrackField } from '../hooks' -import { SingleTrackEditValues, TrackEditFormValues } from '../types' +import { + useIndexedField, + useTrackField +} from '../../../pages/upload-page/hooks' +import { + SingleTrackEditValues, + TrackEditFormValues +} from '../../../pages/upload-page/types' import styles from './AccessAndSaleField.module.css' import { AccessAndSaleMenuFields } from './AccessAndSaleMenuFields' diff --git a/packages/web/src/pages/upload-page/fields/AccessAndSaleMenuFields.tsx b/packages/web/src/components/edit-track/fields/AccessAndSaleMenuFields.tsx similarity index 98% rename from packages/web/src/pages/upload-page/fields/AccessAndSaleMenuFields.tsx rename to packages/web/src/components/edit-track/fields/AccessAndSaleMenuFields.tsx index c25411aaf0a..46c41ce85c3 100644 --- a/packages/web/src/pages/upload-page/fields/AccessAndSaleMenuFields.tsx +++ b/packages/web/src/components/edit-track/fields/AccessAndSaleMenuFields.tsx @@ -21,7 +21,7 @@ import { ModalRadioItem } from 'components/modal-radio/ModalRadioItem' import { useFlag } from 'hooks/useRemoteConfig' import { pluralize } from 'utils/stringUtils' -import { SingleTrackEditValues } from '../types' +import { SingleTrackEditValues } from '../../../pages/upload-page/types' import styles from './AccessAndSaleField.module.css' import { HiddenAvailabilityFields } from './stream-availability/HiddenAvailabilityFields' diff --git a/packages/web/src/pages/upload-page/fields/AttributionField.module.css b/packages/web/src/components/edit-track/fields/AttributionField.module.css similarity index 100% rename from packages/web/src/pages/upload-page/fields/AttributionField.module.css rename to packages/web/src/components/edit-track/fields/AttributionField.module.css diff --git a/packages/web/src/pages/upload-page/fields/AttributionField.tsx b/packages/web/src/components/edit-track/fields/AttributionField.tsx similarity index 99% rename from packages/web/src/pages/upload-page/fields/AttributionField.tsx rename to packages/web/src/components/edit-track/fields/AttributionField.tsx index 0fb88844b6f..ab057a43761 100644 --- a/packages/web/src/pages/upload-page/fields/AttributionField.tsx +++ b/packages/web/src/components/edit-track/fields/AttributionField.tsx @@ -19,12 +19,12 @@ import { SelectedValues } from 'components/data-entry/ContextualMenu' import { Divider } from 'components/divider' +import { computeLicenseIcons } from 'components/edit-track/utils/computeLicenseIcons' import { TextField } from 'components/form-fields' import { SegmentedControlField } from 'components/form-fields/SegmentedControlField' import layoutStyles from 'components/layout/layout.module.css' import { useTrackField } from 'pages/upload-page/hooks' import { SingleTrackEditValues } from 'pages/upload-page/types' -import { computeLicenseIcons } from 'pages/upload-page/utils/computeLicenseIcons' import { env } from 'services/env' import styles from './AttributionField.module.css' diff --git a/packages/web/src/pages/upload-page/fields/BoxedTextField.module.css b/packages/web/src/components/edit-track/fields/BoxedTextField.module.css similarity index 100% rename from packages/web/src/pages/upload-page/fields/BoxedTextField.module.css rename to packages/web/src/components/edit-track/fields/BoxedTextField.module.css diff --git a/packages/web/src/pages/upload-page/fields/BoxedTextField.tsx b/packages/web/src/components/edit-track/fields/BoxedTextField.tsx similarity index 100% rename from packages/web/src/pages/upload-page/fields/BoxedTextField.tsx rename to packages/web/src/components/edit-track/fields/BoxedTextField.tsx diff --git a/packages/web/src/pages/upload-page/fields/CollectionTrackField.module.css b/packages/web/src/components/edit-track/fields/CollectionTrackField.module.css similarity index 100% rename from packages/web/src/pages/upload-page/fields/CollectionTrackField.module.css rename to packages/web/src/components/edit-track/fields/CollectionTrackField.module.css diff --git a/packages/web/src/pages/upload-page/fields/CollectionTrackField.tsx b/packages/web/src/components/edit-track/fields/CollectionTrackField.tsx similarity index 94% rename from packages/web/src/pages/upload-page/fields/CollectionTrackField.tsx rename to packages/web/src/components/edit-track/fields/CollectionTrackField.tsx index b8c2d29e3a4..644cf0d605d 100644 --- a/packages/web/src/pages/upload-page/fields/CollectionTrackField.tsx +++ b/packages/web/src/components/edit-track/fields/CollectionTrackField.tsx @@ -5,11 +5,11 @@ import { useField } from 'formik' import { Tile } from 'components/tile' -import { TrackNameField } from '../fields/TrackNameField' -import { CollectionTrackForUpload } from '../types' +import { CollectionTrackForUpload } from '../../../pages/upload-page/types' import { UploadPreviewContext } from '../utils/uploadPreviewContext' import styles from './CollectionTrackField.module.css' +import { TrackNameField } from './TrackNameField' type CollectionTrackFieldProps = { index: number diff --git a/packages/web/src/pages/upload-page/fields/CollectionTrackFieldArray.tsx b/packages/web/src/components/edit-track/fields/CollectionTrackFieldArray.tsx similarity index 96% rename from packages/web/src/pages/upload-page/fields/CollectionTrackFieldArray.tsx rename to packages/web/src/components/edit-track/fields/CollectionTrackFieldArray.tsx index f5955ea2694..b70de312a7a 100644 --- a/packages/web/src/pages/upload-page/fields/CollectionTrackFieldArray.tsx +++ b/packages/web/src/components/edit-track/fields/CollectionTrackFieldArray.tsx @@ -1,7 +1,7 @@ import { FieldArray, useField } from 'formik' import { DragDropContext, Draggable, Droppable } from 'react-beautiful-dnd' -import { CollectionTrackForUpload } from '../types' +import { CollectionTrackForUpload } from '../../../pages/upload-page/types' import { CollectionTrackField } from './CollectionTrackField' diff --git a/packages/web/src/pages/upload-page/fields/DatePickerField.module.css b/packages/web/src/components/edit-track/fields/DatePickerField.module.css similarity index 100% rename from packages/web/src/pages/upload-page/fields/DatePickerField.module.css rename to packages/web/src/components/edit-track/fields/DatePickerField.module.css diff --git a/packages/web/src/pages/upload-page/fields/DatePickerField.tsx b/packages/web/src/components/edit-track/fields/DatePickerField.tsx similarity index 100% rename from packages/web/src/pages/upload-page/fields/DatePickerField.tsx rename to packages/web/src/components/edit-track/fields/DatePickerField.tsx diff --git a/packages/web/src/pages/upload-page/fields/ModalField.module.css b/packages/web/src/components/edit-track/fields/ModalField.module.css similarity index 100% rename from packages/web/src/pages/upload-page/fields/ModalField.module.css rename to packages/web/src/components/edit-track/fields/ModalField.module.css diff --git a/packages/web/src/pages/upload-page/fields/ModalField.tsx b/packages/web/src/components/edit-track/fields/ModalField.tsx similarity index 100% rename from packages/web/src/pages/upload-page/fields/ModalField.tsx rename to packages/web/src/components/edit-track/fields/ModalField.tsx diff --git a/packages/web/src/pages/upload-page/fields/MultiTrackSidebar.module.css b/packages/web/src/components/edit-track/fields/MultiTrackSidebar.module.css similarity index 100% rename from packages/web/src/pages/upload-page/fields/MultiTrackSidebar.module.css rename to packages/web/src/components/edit-track/fields/MultiTrackSidebar.module.css diff --git a/packages/web/src/pages/upload-page/fields/MultiTrackSidebar.tsx b/packages/web/src/components/edit-track/fields/MultiTrackSidebar.tsx similarity index 96% rename from packages/web/src/pages/upload-page/fields/MultiTrackSidebar.tsx rename to packages/web/src/components/edit-track/fields/MultiTrackSidebar.tsx index 70fdb1b25ca..a2ca311270f 100644 --- a/packages/web/src/pages/upload-page/fields/MultiTrackSidebar.tsx +++ b/packages/web/src/components/edit-track/fields/MultiTrackSidebar.tsx @@ -16,9 +16,12 @@ import { isEmpty } from 'lodash' import DynamicImage from 'components/dynamic-image/DynamicImage' import layoutStyles from 'components/layout/layout.module.css' -import { UploadFormScrollContext } from '../UploadPage' -import { useIndexedField } from '../hooks' -import { SingleTrackEditValues, TrackEditFormValues } from '../types' +import { UploadFormScrollContext } from '../../../pages/upload-page/UploadPage' +import { useIndexedField } from '../../../pages/upload-page/hooks' +import { + SingleTrackEditValues, + TrackEditFormValues +} from '../../../pages/upload-page/types' import { UploadPreviewContext } from '../utils/uploadPreviewContext' import styles from './MultiTrackSidebar.module.css' diff --git a/packages/web/src/pages/upload-page/fields/ReleaseDateField.module.css b/packages/web/src/components/edit-track/fields/ReleaseDateField.module.css similarity index 100% rename from packages/web/src/pages/upload-page/fields/ReleaseDateField.module.css rename to packages/web/src/components/edit-track/fields/ReleaseDateField.module.css diff --git a/packages/web/src/pages/upload-page/fields/ReleaseDateField.tsx b/packages/web/src/components/edit-track/fields/ReleaseDateField.tsx similarity index 98% rename from packages/web/src/pages/upload-page/fields/ReleaseDateField.tsx rename to packages/web/src/components/edit-track/fields/ReleaseDateField.tsx index 9e9d0d50502..554e712adf0 100644 --- a/packages/web/src/pages/upload-page/fields/ReleaseDateField.tsx +++ b/packages/web/src/components/edit-track/fields/ReleaseDateField.tsx @@ -26,8 +26,8 @@ import layoutStyles from 'components/layout/layout.module.css' import { ModalRadioItem } from 'components/modal-radio/ModalRadioItem' import { formatCalendarTime } from 'utils/dateUtils' -import { useTrackField } from '../hooks' -import { SingleTrackEditValues } from '../types' +import { useTrackField } from '../../../pages/upload-page/hooks' +import { SingleTrackEditValues } from '../../../pages/upload-page/types' import { DatePickerField } from './DatePickerField' import styles from './ReleaseDateField.module.css' diff --git a/packages/web/src/pages/upload-page/fields/ReleaseDateFieldLegacy.module.css b/packages/web/src/components/edit-track/fields/ReleaseDateFieldLegacy.module.css similarity index 100% rename from packages/web/src/pages/upload-page/fields/ReleaseDateFieldLegacy.module.css rename to packages/web/src/components/edit-track/fields/ReleaseDateFieldLegacy.module.css diff --git a/packages/web/src/pages/upload-page/fields/ReleaseDateFieldLegacy.tsx b/packages/web/src/components/edit-track/fields/ReleaseDateFieldLegacy.tsx similarity index 94% rename from packages/web/src/pages/upload-page/fields/ReleaseDateFieldLegacy.tsx rename to packages/web/src/components/edit-track/fields/ReleaseDateFieldLegacy.tsx index f5d3455ffe1..7e124b59ef3 100644 --- a/packages/web/src/pages/upload-page/fields/ReleaseDateFieldLegacy.tsx +++ b/packages/web/src/components/edit-track/fields/ReleaseDateFieldLegacy.tsx @@ -9,8 +9,8 @@ import { SelectedValue } from 'components/data-entry/ContextualMenu' -import { useTrackField } from '../hooks' -import { SingleTrackEditValues } from '../types' +import { useTrackField } from '../../../pages/upload-page/hooks' +import { SingleTrackEditValues } from '../../../pages/upload-page/types' import { DatePickerField } from './DatePickerField' import styles from './ReleaseDateFieldLegacy.module.css' diff --git a/packages/web/src/pages/upload-page/fields/RemixSettingsField/RemixSettingsField.module.css b/packages/web/src/components/edit-track/fields/RemixSettingsField/RemixSettingsField.module.css similarity index 100% rename from packages/web/src/pages/upload-page/fields/RemixSettingsField/RemixSettingsField.module.css rename to packages/web/src/components/edit-track/fields/RemixSettingsField/RemixSettingsField.module.css diff --git a/packages/web/src/pages/upload-page/fields/RemixSettingsField/RemixSettingsField.tsx b/packages/web/src/components/edit-track/fields/RemixSettingsField/RemixSettingsField.tsx similarity index 96% rename from packages/web/src/pages/upload-page/fields/RemixSettingsField/RemixSettingsField.tsx rename to packages/web/src/components/edit-track/fields/RemixSettingsField/RemixSettingsField.tsx index ea148c9dde0..17c5a7c15c1 100644 --- a/packages/web/src/pages/upload-page/fields/RemixSettingsField/RemixSettingsField.tsx +++ b/packages/web/src/components/edit-track/fields/RemixSettingsField/RemixSettingsField.tsx @@ -18,8 +18,8 @@ import { } from 'components/data-entry/ContextualMenu' import { fullTrackPage } from 'utils/route' -import { useTrackField } from '../../hooks' -import { SingleTrackEditValues } from '../../types' +import { useTrackField } from '../../../../pages/upload-page/hooks' +import { SingleTrackEditValues } from '../../../../pages/upload-page/types' import { IS_STREAM_GATED, STREAM_CONDITIONS } from '../types' import styles from './RemixSettingsField.module.css' diff --git a/packages/web/src/pages/upload-page/fields/RemixSettingsField/RemixSettingsMenuFields.tsx b/packages/web/src/components/edit-track/fields/RemixSettingsField/RemixSettingsMenuFields.tsx similarity index 100% rename from packages/web/src/pages/upload-page/fields/RemixSettingsField/RemixSettingsMenuFields.tsx rename to packages/web/src/components/edit-track/fields/RemixSettingsField/RemixSettingsMenuFields.tsx diff --git a/packages/web/src/pages/upload-page/fields/RemixSettingsField/TrackInfo.tsx b/packages/web/src/components/edit-track/fields/RemixSettingsField/TrackInfo.tsx similarity index 100% rename from packages/web/src/pages/upload-page/fields/RemixSettingsField/TrackInfo.tsx rename to packages/web/src/components/edit-track/fields/RemixSettingsField/TrackInfo.tsx diff --git a/packages/web/src/pages/upload-page/fields/RemixSettingsField/index.ts b/packages/web/src/components/edit-track/fields/RemixSettingsField/index.ts similarity index 100% rename from packages/web/src/pages/upload-page/fields/RemixSettingsField/index.ts rename to packages/web/src/components/edit-track/fields/RemixSettingsField/index.ts diff --git a/packages/web/src/pages/upload-page/fields/RemixSettingsField/types.ts b/packages/web/src/components/edit-track/fields/RemixSettingsField/types.ts similarity index 100% rename from packages/web/src/pages/upload-page/fields/RemixSettingsField/types.ts rename to packages/web/src/components/edit-track/fields/RemixSettingsField/types.ts diff --git a/packages/web/src/pages/upload-page/fields/SelectGenreField.tsx b/packages/web/src/components/edit-track/fields/SelectGenreField.tsx similarity index 100% rename from packages/web/src/pages/upload-page/fields/SelectGenreField.tsx rename to packages/web/src/components/edit-track/fields/SelectGenreField.tsx diff --git a/packages/web/src/pages/upload-page/fields/SelectMoodField.tsx b/packages/web/src/components/edit-track/fields/SelectMoodField.tsx similarity index 100% rename from packages/web/src/pages/upload-page/fields/SelectMoodField.tsx rename to packages/web/src/components/edit-track/fields/SelectMoodField.tsx diff --git a/packages/web/src/pages/upload-page/fields/StemFilesView.module.css b/packages/web/src/components/edit-track/fields/StemFilesView.module.css similarity index 100% rename from packages/web/src/pages/upload-page/fields/StemFilesView.module.css rename to packages/web/src/components/edit-track/fields/StemFilesView.module.css diff --git a/packages/web/src/pages/upload-page/fields/StemFilesView.tsx b/packages/web/src/components/edit-track/fields/StemFilesView.tsx similarity index 100% rename from packages/web/src/pages/upload-page/fields/StemFilesView.tsx rename to packages/web/src/components/edit-track/fields/StemFilesView.tsx diff --git a/packages/web/src/pages/upload-page/fields/StemsAndDownloadsCollectionsField.tsx b/packages/web/src/components/edit-track/fields/StemsAndDownloadsCollectionsField.tsx similarity index 100% rename from packages/web/src/pages/upload-page/fields/StemsAndDownloadsCollectionsField.tsx rename to packages/web/src/components/edit-track/fields/StemsAndDownloadsCollectionsField.tsx diff --git a/packages/web/src/pages/upload-page/fields/StemsAndDownloadsField.module.css b/packages/web/src/components/edit-track/fields/StemsAndDownloadsField.module.css similarity index 100% rename from packages/web/src/pages/upload-page/fields/StemsAndDownloadsField.module.css rename to packages/web/src/components/edit-track/fields/StemsAndDownloadsField.module.css diff --git a/packages/web/src/pages/upload-page/fields/StemsAndDownloadsField.tsx b/packages/web/src/components/edit-track/fields/StemsAndDownloadsField.tsx similarity index 99% rename from packages/web/src/pages/upload-page/fields/StemsAndDownloadsField.tsx rename to packages/web/src/components/edit-track/fields/StemsAndDownloadsField.tsx index 4b9d1bc12d3..3b4d35d864f 100644 --- a/packages/web/src/pages/upload-page/fields/StemsAndDownloadsField.tsx +++ b/packages/web/src/components/edit-track/fields/StemsAndDownloadsField.tsx @@ -27,7 +27,7 @@ import { SelectedValues } from 'components/data-entry/ContextualMenu' -import { useTrackField } from '../hooks' +import { useTrackField } from '../../../pages/upload-page/hooks' import { StemsAndDownloadsMenuFields, diff --git a/packages/web/src/pages/upload-page/fields/StemsAndDownloadsMenuFields.tsx b/packages/web/src/components/edit-track/fields/StemsAndDownloadsMenuFields.tsx similarity index 99% rename from packages/web/src/pages/upload-page/fields/StemsAndDownloadsMenuFields.tsx rename to packages/web/src/components/edit-track/fields/StemsAndDownloadsMenuFields.tsx index 7bf75714dea..0df741e179b 100644 --- a/packages/web/src/pages/upload-page/fields/StemsAndDownloadsMenuFields.tsx +++ b/packages/web/src/components/edit-track/fields/StemsAndDownloadsMenuFields.tsx @@ -16,7 +16,7 @@ import { z } from 'zod' import { Divider } from 'components/divider' import { stemDropdownRows } from 'utils/stems' -import { processFiles } from '../store/utils/processFiles' +import { processFiles } from '../../../pages/upload-page/store/utils/processFiles' import { USDCPurchaseRemoteConfig } from './AccessAndSaleField' import { StemFilesView } from './StemFilesView' diff --git a/packages/web/src/pages/upload-page/fields/SwitchRowField.module.css b/packages/web/src/components/edit-track/fields/SwitchRowField.module.css similarity index 100% rename from packages/web/src/pages/upload-page/fields/SwitchRowField.module.css rename to packages/web/src/components/edit-track/fields/SwitchRowField.module.css diff --git a/packages/web/src/pages/upload-page/fields/SwitchRowField.tsx b/packages/web/src/components/edit-track/fields/SwitchRowField.tsx similarity index 100% rename from packages/web/src/pages/upload-page/fields/SwitchRowField.tsx rename to packages/web/src/components/edit-track/fields/SwitchRowField.tsx diff --git a/packages/web/src/pages/upload-page/fields/TrackMetadataFields.module.css b/packages/web/src/components/edit-track/fields/TrackMetadataFields.module.css similarity index 100% rename from packages/web/src/pages/upload-page/fields/TrackMetadataFields.module.css rename to packages/web/src/components/edit-track/fields/TrackMetadataFields.module.css diff --git a/packages/web/src/pages/upload-page/fields/TrackMetadataFields.tsx b/packages/web/src/components/edit-track/fields/TrackMetadataFields.tsx similarity index 96% rename from packages/web/src/pages/upload-page/fields/TrackMetadataFields.tsx rename to packages/web/src/components/edit-track/fields/TrackMetadataFields.tsx index 50f735515b2..45509b5c08d 100644 --- a/packages/web/src/pages/upload-page/fields/TrackMetadataFields.tsx +++ b/packages/web/src/components/edit-track/fields/TrackMetadataFields.tsx @@ -4,7 +4,7 @@ import { useField } from 'formik' import { ArtworkField, TagField, TextAreaField } from 'components/form-fields' import layoutStyles from 'components/layout/layout.module.css' -import { getTrackFieldName } from '../hooks' +import { getTrackFieldName } from '../../../pages/upload-page/hooks' import { SelectGenreField } from './SelectGenreField' import { SelectMoodField } from './SelectMoodField' diff --git a/packages/web/src/pages/upload-page/fields/TrackNameField.tsx b/packages/web/src/components/edit-track/fields/TrackNameField.tsx similarity index 100% rename from packages/web/src/pages/upload-page/fields/TrackNameField.tsx rename to packages/web/src/components/edit-track/fields/TrackNameField.tsx diff --git a/packages/web/src/pages/upload-page/fields/download-availability/DownloadAvailability.tsx b/packages/web/src/components/edit-track/fields/download-availability/DownloadAvailability.tsx similarity index 100% rename from packages/web/src/pages/upload-page/fields/download-availability/DownloadAvailability.tsx rename to packages/web/src/components/edit-track/fields/download-availability/DownloadAvailability.tsx diff --git a/packages/web/src/pages/upload-page/fields/download-availability/DownloadPriceField.tsx b/packages/web/src/components/edit-track/fields/download-availability/DownloadPriceField.tsx similarity index 100% rename from packages/web/src/pages/upload-page/fields/download-availability/DownloadPriceField.tsx rename to packages/web/src/components/edit-track/fields/download-availability/DownloadPriceField.tsx diff --git a/packages/web/src/pages/upload-page/fields/helpers.ts b/packages/web/src/components/edit-track/fields/helpers.ts similarity index 100% rename from packages/web/src/pages/upload-page/fields/helpers.ts rename to packages/web/src/components/edit-track/fields/helpers.ts diff --git a/packages/web/src/pages/upload-page/fields/stream-availability/HiddenAvailabilityFields.module.css b/packages/web/src/components/edit-track/fields/stream-availability/HiddenAvailabilityFields.module.css similarity index 100% rename from packages/web/src/pages/upload-page/fields/stream-availability/HiddenAvailabilityFields.module.css rename to packages/web/src/components/edit-track/fields/stream-availability/HiddenAvailabilityFields.module.css diff --git a/packages/web/src/pages/upload-page/fields/stream-availability/HiddenAvailabilityFields.tsx b/packages/web/src/components/edit-track/fields/stream-availability/HiddenAvailabilityFields.tsx similarity index 100% rename from packages/web/src/pages/upload-page/fields/stream-availability/HiddenAvailabilityFields.tsx rename to packages/web/src/components/edit-track/fields/stream-availability/HiddenAvailabilityFields.tsx diff --git a/packages/web/src/pages/upload-page/fields/stream-availability/SpecialAccessFields.module.css b/packages/web/src/components/edit-track/fields/stream-availability/SpecialAccessFields.module.css similarity index 100% rename from packages/web/src/pages/upload-page/fields/stream-availability/SpecialAccessFields.module.css rename to packages/web/src/components/edit-track/fields/stream-availability/SpecialAccessFields.module.css diff --git a/packages/web/src/pages/upload-page/fields/stream-availability/SpecialAccessFields.tsx b/packages/web/src/components/edit-track/fields/stream-availability/SpecialAccessFields.tsx similarity index 100% rename from packages/web/src/pages/upload-page/fields/stream-availability/SpecialAccessFields.tsx rename to packages/web/src/components/edit-track/fields/stream-availability/SpecialAccessFields.tsx diff --git a/packages/web/src/pages/upload-page/fields/stream-availability/collectible-gated/CollectibleGatedDescription.tsx b/packages/web/src/components/edit-track/fields/stream-availability/collectible-gated/CollectibleGatedDescription.tsx similarity index 100% rename from packages/web/src/pages/upload-page/fields/stream-availability/collectible-gated/CollectibleGatedDescription.tsx rename to packages/web/src/components/edit-track/fields/stream-availability/collectible-gated/CollectibleGatedDescription.tsx diff --git a/packages/web/src/pages/upload-page/fields/stream-availability/collectible-gated/CollectibleGatedFields.module.css b/packages/web/src/components/edit-track/fields/stream-availability/collectible-gated/CollectibleGatedFields.module.css similarity index 100% rename from packages/web/src/pages/upload-page/fields/stream-availability/collectible-gated/CollectibleGatedFields.module.css rename to packages/web/src/components/edit-track/fields/stream-availability/collectible-gated/CollectibleGatedFields.module.css diff --git a/packages/web/src/pages/upload-page/fields/stream-availability/collectible-gated/CollectibleGatedFields.tsx b/packages/web/src/components/edit-track/fields/stream-availability/collectible-gated/CollectibleGatedFields.tsx similarity index 100% rename from packages/web/src/pages/upload-page/fields/stream-availability/collectible-gated/CollectibleGatedFields.tsx rename to packages/web/src/components/edit-track/fields/stream-availability/collectible-gated/CollectibleGatedFields.tsx diff --git a/packages/web/src/pages/upload-page/fields/stream-availability/collectible-gated/CollectibleGatedRadioField.tsx b/packages/web/src/components/edit-track/fields/stream-availability/collectible-gated/CollectibleGatedRadioField.tsx similarity index 100% rename from packages/web/src/pages/upload-page/fields/stream-availability/collectible-gated/CollectibleGatedRadioField.tsx rename to packages/web/src/components/edit-track/fields/stream-availability/collectible-gated/CollectibleGatedRadioField.tsx diff --git a/packages/web/src/pages/upload-page/fields/stream-availability/usdc-purchase-gated/UsdcPurchaseFields.tsx b/packages/web/src/components/edit-track/fields/stream-availability/usdc-purchase-gated/UsdcPurchaseFields.tsx similarity index 100% rename from packages/web/src/pages/upload-page/fields/stream-availability/usdc-purchase-gated/UsdcPurchaseFields.tsx rename to packages/web/src/components/edit-track/fields/stream-availability/usdc-purchase-gated/UsdcPurchaseFields.tsx diff --git a/packages/web/src/pages/upload-page/fields/stream-availability/usdc-purchase-gated/UsdcPurchaseGatedRadioField.module.css b/packages/web/src/components/edit-track/fields/stream-availability/usdc-purchase-gated/UsdcPurchaseGatedRadioField.module.css similarity index 100% rename from packages/web/src/pages/upload-page/fields/stream-availability/usdc-purchase-gated/UsdcPurchaseGatedRadioField.module.css rename to packages/web/src/components/edit-track/fields/stream-availability/usdc-purchase-gated/UsdcPurchaseGatedRadioField.module.css diff --git a/packages/web/src/pages/upload-page/fields/stream-availability/usdc-purchase-gated/UsdcPurchaseGatedRadioField.tsx b/packages/web/src/components/edit-track/fields/stream-availability/usdc-purchase-gated/UsdcPurchaseGatedRadioField.tsx similarity index 100% rename from packages/web/src/pages/upload-page/fields/stream-availability/usdc-purchase-gated/UsdcPurchaseGatedRadioField.tsx rename to packages/web/src/components/edit-track/fields/stream-availability/usdc-purchase-gated/UsdcPurchaseGatedRadioField.tsx diff --git a/packages/web/src/pages/upload-page/fields/types.ts b/packages/web/src/components/edit-track/fields/types.ts similarity index 100% rename from packages/web/src/pages/upload-page/fields/types.ts rename to packages/web/src/components/edit-track/fields/types.ts diff --git a/packages/web/src/pages/upload-page/utils/computeLicenseIcons.ts b/packages/web/src/components/edit-track/utils/computeLicenseIcons.ts similarity index 100% rename from packages/web/src/pages/upload-page/utils/computeLicenseIcons.ts rename to packages/web/src/components/edit-track/utils/computeLicenseIcons.ts diff --git a/packages/web/src/pages/upload-page/utils/uploadPreviewContext.tsx b/packages/web/src/components/edit-track/utils/uploadPreviewContext.tsx similarity index 100% rename from packages/web/src/pages/upload-page/utils/uploadPreviewContext.tsx rename to packages/web/src/components/edit-track/utils/uploadPreviewContext.tsx diff --git a/packages/web/src/pages/upload-page/UploadPage.tsx b/packages/web/src/pages/upload-page/UploadPage.tsx index b98b5f23c57..1b595155267 100644 --- a/packages/web/src/pages/upload-page/UploadPage.tsx +++ b/packages/web/src/pages/upload-page/UploadPage.tsx @@ -11,12 +11,13 @@ import { useDispatch, useSelector } from 'react-redux' import Header from 'components/header/desktop/Header' import Page from 'components/page/Page' +import { UploadPreviewContextProvider } from '../../components/edit-track/utils/uploadPreviewContext' + import styles from './UploadPage.module.css' import { EditPage } from './pages/EditPage' import { FinishPage } from './pages/FinishPage' import SelectPageNew from './pages/SelectPage' import { UploadFormState } from './types' -import { UploadPreviewContextProvider } from './utils/uploadPreviewContext' const { uploadTracks, undoResetState } = uploadActions const { requestOpen: openUploadConfirmationModal } = diff --git a/packages/web/src/pages/upload-page/forms/EditCollectionForm.tsx b/packages/web/src/pages/upload-page/forms/EditCollectionForm.tsx index c76f2e3b419..1b31757b57f 100644 --- a/packages/web/src/pages/upload-page/forms/EditCollectionForm.tsx +++ b/packages/web/src/pages/upload-page/forms/EditCollectionForm.tsx @@ -21,13 +21,13 @@ import { } from 'components/form-fields' import { Tile } from 'components/tile' +import { AccessAndSaleField } from '../../../components/edit-track/fields/AccessAndSaleField' +import { CollectionTrackFieldArray } from '../../../components/edit-track/fields/CollectionTrackFieldArray' +import { ReleaseDateFieldLegacy } from '../../../components/edit-track/fields/ReleaseDateFieldLegacy' +import { SelectGenreField } from '../../../components/edit-track/fields/SelectGenreField' +import { SelectMoodField } from '../../../components/edit-track/fields/SelectMoodField' +import { StemsAndDownloadsCollectionField } from '../../../components/edit-track/fields/StemsAndDownloadsCollectionsField' import { AnchoredSubmitRow } from '../components/AnchoredSubmitRow' -import { AccessAndSaleField } from '../fields/AccessAndSaleField' -import { CollectionTrackFieldArray } from '../fields/CollectionTrackFieldArray' -import { ReleaseDateFieldLegacy } from '../fields/ReleaseDateFieldLegacy' -import { SelectGenreField } from '../fields/SelectGenreField' -import { SelectMoodField } from '../fields/SelectMoodField' -import { StemsAndDownloadsCollectionField } from '../fields/StemsAndDownloadsCollectionsField' import { CollectionFormState } from '../types' import styles from './EditCollectionForm.module.css' diff --git a/packages/web/src/pages/upload-page/forms/EditTrackFormForUpload.tsx b/packages/web/src/pages/upload-page/forms/EditTrackFormForUpload.tsx new file mode 100644 index 00000000000..f16075fb5f6 --- /dev/null +++ b/packages/web/src/pages/upload-page/forms/EditTrackFormForUpload.tsx @@ -0,0 +1,64 @@ +import { useCallback, useMemo } from 'react' + +import moment from 'moment' + +import { EditTrackForm } from 'components/edit-track/EditTrackForm' + +// TODO: maybe move this to a shared location +import { defaultHiddenFields } from '../../../components/edit-track/fields/stream-availability/HiddenAvailabilityFields' +import { TrackEditFormValues, TrackFormState } from '../types' + +type EditTrackFormProps = { + formState: TrackFormState + onContinue: (formState: TrackFormState) => void +} + +export const EditTrackFormForUpload = (props: EditTrackFormProps) => { + const { formState, onContinue } = props + const { tracks } = formState + + const initialValues: TrackEditFormValues = useMemo( + () => ({ + trackMetadatasIndex: 0, + tracks, + trackMetadatas: tracks.map((track) => ({ + ...track.metadata, + description: '', + releaseDate: new Date(moment().toString()), + tags: '', + field_visibility: { + ...defaultHiddenFields, + remixes: true + }, + licenseType: { + allowAttribution: null, + commercialUse: null, + derivativeWorks: null + }, + stems: [], + isrc: '', + iswc: '' + })) + }), + [tracks] + ) + + const onSubmit = useCallback( + (values: TrackEditFormValues) => { + const tracksForUpload = tracks.map((track, i) => { + const metadata = values.trackMetadatas[i] + const { licenseType: ignoredLicenseType, ...restMetadata } = metadata + return { + ...track, + metadata: { + ...restMetadata + } + } + }) + onContinue({ ...formState, tracks: tracksForUpload }) + }, + [formState, onContinue, tracks] + ) + + return +} diff --git a/packages/web/src/pages/upload-page/pages/EditPage.tsx b/packages/web/src/pages/upload-page/pages/EditPage.tsx index 56266fe25d2..2090931ad25 100644 --- a/packages/web/src/pages/upload-page/pages/EditPage.tsx +++ b/packages/web/src/pages/upload-page/pages/EditPage.tsx @@ -3,10 +3,10 @@ import { useContext } from 'react' import { UploadType } from '@audius/common/store' import { useUnmount } from 'react-use' +import { UploadPreviewContext } from '../../../components/edit-track/utils/uploadPreviewContext' import { EditCollectionForm } from '../forms/EditCollectionForm' -import { EditTrackForm } from '../forms/EditTrackForm' +import { EditTrackFormForUpload } from '../forms/EditTrackFormForUpload' import { CollectionFormState, TrackFormState, UploadFormState } from '../types' -import { UploadPreviewContext } from '../utils/uploadPreviewContext' type EditPageProps = { formState: TrackFormState | CollectionFormState @@ -21,7 +21,9 @@ export const EditPage = (props: EditPageProps) => { switch (formState.uploadType) { case UploadType.INDIVIDUAL_TRACK: case UploadType.INDIVIDUAL_TRACKS: - return + return ( + + ) case UploadType.ALBUM: case UploadType.PLAYLIST: return ( From bfb3b9ea459a7bd1dccfdf2a94c45f40c6ed4da7 Mon Sep 17 00:00:00 2001 From: amendelsohn Date: Wed, 29 May 2024 11:40:10 -0700 Subject: [PATCH 2/4] create components/edit and move shared fields to it; move collection form --- .../create-playlist/PlaylistForm.tsx | 2 +- .../data-entry/AccessAndSaleTriggerLegacy.tsx | 8 +-- .../data-entry/ReleaseDateTriggerLegacy.tsx | 2 +- .../StemsAndDownloadsTriggerLegacy.tsx | 14 ++-- .../desktop}/EditCollectionForm.module.css | 0 .../desktop}/EditCollectionForm.tsx | 65 ++++--------------- .../desktop/EditCollectionModal.module.css} | 0 .../desktop/EditCollectionModal.tsx} | 6 +- .../mobile/EditPlaylistPage.module.css | 0 .../mobile/EditPlaylistPage.tsx | 0 .../RemovePlaylistTrackDrawer.module.css | 0 .../mobile/RemovePlaylistTrackDrawer.tsx | 0 .../components/edit-track/EditTrackForm.tsx | 18 ++--- .../edit-track/components/PreviewButton.tsx | 6 +- .../edit-track}/hooks.ts | 0 .../web/src/components/edit-track/types.ts | 19 ++++++ .../fields/AccessAndSaleField.module.css | 0 .../fields/AccessAndSaleField.tsx | 7 +- .../fields/AccessAndSaleMenuFields.tsx | 2 +- .../fields/AttributionField.module.css | 0 .../fields/AttributionField.tsx | 4 +- .../fields/BoxedTextField.module.css | 0 .../fields/BoxedTextField.tsx | 0 .../fields/CollectionTrackField.module.css | 0 .../fields/CollectionTrackField.tsx | 4 +- .../fields/CollectionTrackFieldArray.tsx | 2 +- .../fields/DatePickerField.module.css | 0 .../fields/DatePickerField.tsx | 0 .../fields/ModalField.module.css | 0 .../fields/ModalField.tsx | 0 .../fields/MultiTrackSidebar.module.css | 0 .../fields/MultiTrackSidebar.tsx | 6 +- .../fields/ReleaseDateField.module.css | 0 .../fields/ReleaseDateField.tsx | 4 +- .../fields/ReleaseDateFieldLegacy.module.css | 0 .../fields/ReleaseDateFieldLegacy.tsx | 4 +- .../RemixSettingsField.module.css | 0 .../RemixSettingsField/RemixSettingsField.tsx | 4 +- .../RemixSettingsMenuFields.tsx | 0 .../fields/RemixSettingsField/TrackInfo.tsx | 0 .../fields/RemixSettingsField/index.ts | 0 .../fields/RemixSettingsField/types.ts | 0 .../fields/SelectGenreField.tsx | 0 .../fields/SelectMoodField.tsx | 0 .../fields/StemFilesView.module.css | 0 .../fields/StemFilesView.tsx | 0 .../StemsAndDownloadsCollectionsField.tsx | 0 .../fields/StemsAndDownloadsField.module.css | 0 .../fields/StemsAndDownloadsField.tsx | 2 +- .../fields/StemsAndDownloadsMenuFields.tsx | 0 .../fields/SwitchRowField.module.css | 0 .../fields/SwitchRowField.tsx | 0 .../fields/TrackMetadataFields.module.css | 0 .../fields/TrackMetadataFields.tsx | 2 +- .../fields/TrackNameField.tsx | 0 .../DownloadAvailability.tsx | 2 +- .../DownloadPriceField.tsx | 0 .../{edit-track => edit}/fields/helpers.ts | 0 .../HiddenAvailabilityFields.module.css | 0 .../HiddenAvailabilityFields.tsx | 0 .../SpecialAccessFields.module.css | 0 .../SpecialAccessFields.tsx | 0 .../CollectibleGatedDescription.tsx | 0 .../CollectibleGatedFields.module.css | 0 .../CollectibleGatedFields.tsx | 0 .../CollectibleGatedRadioField.tsx | 0 .../UsdcPurchaseFields.tsx | 0 .../UsdcPurchaseGatedRadioField.module.css | 0 .../UsdcPurchaseGatedRadioField.tsx | 0 .../{edit-track => edit}/fields/types.ts | 0 .../components/form-fields/ArtworkField.tsx | 2 +- .../components/nav/mobile/TopLevelPage.tsx | 2 +- packages/web/src/pages/modals/Modals.tsx | 2 +- .../forms/EditCollectionFormForUpload.tsx | 55 ++++++++++++++++ .../forms/EditTrackFormForUpload.tsx | 7 +- .../src/pages/upload-page/pages/EditPage.tsx | 7 +- packages/web/src/pages/upload-page/types.ts | 24 +------ 77 files changed, 148 insertions(+), 134 deletions(-) rename packages/web/src/{pages/upload-page/forms => components/edit-collection/desktop}/EditCollectionForm.module.css (100%) rename packages/web/src/{pages/upload-page/forms => components/edit-collection/desktop}/EditCollectionForm.tsx (62%) rename packages/web/src/components/{edit-playlist/desktop/EditPlaylistModal.module.css => edit-collection/desktop/EditCollectionModal.module.css} (100%) rename packages/web/src/components/{edit-playlist/desktop/EditPlaylistModal.tsx => edit-collection/desktop/EditCollectionModal.tsx} (97%) rename packages/web/src/components/{edit-playlist => edit-collection}/mobile/EditPlaylistPage.module.css (100%) rename packages/web/src/components/{edit-playlist => edit-collection}/mobile/EditPlaylistPage.tsx (100%) rename packages/web/src/components/{edit-playlist => edit-collection}/mobile/RemovePlaylistTrackDrawer.module.css (100%) rename packages/web/src/components/{edit-playlist => edit-collection}/mobile/RemovePlaylistTrackDrawer.tsx (100%) rename packages/web/src/{pages/upload-page => components/edit-track}/hooks.ts (100%) create mode 100644 packages/web/src/components/edit-track/types.ts rename packages/web/src/components/{edit-track => edit}/fields/AccessAndSaleField.module.css (100%) rename packages/web/src/components/{edit-track => edit}/fields/AccessAndSaleField.tsx (99%) rename packages/web/src/components/{edit-track => edit}/fields/AccessAndSaleMenuFields.tsx (98%) rename packages/web/src/components/{edit-track => edit}/fields/AttributionField.module.css (100%) rename packages/web/src/components/{edit-track => edit}/fields/AttributionField.tsx (99%) rename packages/web/src/components/{edit-track => edit}/fields/BoxedTextField.module.css (100%) rename packages/web/src/components/{edit-track => edit}/fields/BoxedTextField.tsx (100%) rename packages/web/src/components/{edit-track => edit}/fields/CollectionTrackField.module.css (100%) rename packages/web/src/components/{edit-track => edit}/fields/CollectionTrackField.tsx (93%) rename packages/web/src/components/{edit-track => edit}/fields/CollectionTrackFieldArray.tsx (96%) rename packages/web/src/components/{edit-track => edit}/fields/DatePickerField.module.css (100%) rename packages/web/src/components/{edit-track => edit}/fields/DatePickerField.tsx (100%) rename packages/web/src/components/{edit-track => edit}/fields/ModalField.module.css (100%) rename packages/web/src/components/{edit-track => edit}/fields/ModalField.tsx (100%) rename packages/web/src/components/{edit-track => edit}/fields/MultiTrackSidebar.module.css (100%) rename packages/web/src/components/{edit-track => edit}/fields/MultiTrackSidebar.tsx (97%) rename packages/web/src/components/{edit-track => edit}/fields/ReleaseDateField.module.css (100%) rename packages/web/src/components/{edit-track => edit}/fields/ReleaseDateField.tsx (98%) rename packages/web/src/components/{edit-track => edit}/fields/ReleaseDateFieldLegacy.module.css (100%) rename packages/web/src/components/{edit-track => edit}/fields/ReleaseDateFieldLegacy.tsx (94%) rename packages/web/src/components/{edit-track => edit}/fields/RemixSettingsField/RemixSettingsField.module.css (100%) rename packages/web/src/components/{edit-track => edit}/fields/RemixSettingsField/RemixSettingsField.tsx (96%) rename packages/web/src/components/{edit-track => edit}/fields/RemixSettingsField/RemixSettingsMenuFields.tsx (100%) rename packages/web/src/components/{edit-track => edit}/fields/RemixSettingsField/TrackInfo.tsx (100%) rename packages/web/src/components/{edit-track => edit}/fields/RemixSettingsField/index.ts (100%) rename packages/web/src/components/{edit-track => edit}/fields/RemixSettingsField/types.ts (100%) rename packages/web/src/components/{edit-track => edit}/fields/SelectGenreField.tsx (100%) rename packages/web/src/components/{edit-track => edit}/fields/SelectMoodField.tsx (100%) rename packages/web/src/components/{edit-track => edit}/fields/StemFilesView.module.css (100%) rename packages/web/src/components/{edit-track => edit}/fields/StemFilesView.tsx (100%) rename packages/web/src/components/{edit-track => edit}/fields/StemsAndDownloadsCollectionsField.tsx (100%) rename packages/web/src/components/{edit-track => edit}/fields/StemsAndDownloadsField.module.css (100%) rename packages/web/src/components/{edit-track => edit}/fields/StemsAndDownloadsField.tsx (99%) rename packages/web/src/components/{edit-track => edit}/fields/StemsAndDownloadsMenuFields.tsx (100%) rename packages/web/src/components/{edit-track => edit}/fields/SwitchRowField.module.css (100%) rename packages/web/src/components/{edit-track => edit}/fields/SwitchRowField.tsx (100%) rename packages/web/src/components/{edit-track => edit}/fields/TrackMetadataFields.module.css (100%) rename packages/web/src/components/{edit-track => edit}/fields/TrackMetadataFields.tsx (96%) rename packages/web/src/components/{edit-track => edit}/fields/TrackNameField.tsx (100%) rename packages/web/src/components/{edit-track => edit}/fields/download-availability/DownloadAvailability.tsx (99%) rename packages/web/src/components/{edit-track => edit}/fields/download-availability/DownloadPriceField.tsx (100%) rename packages/web/src/components/{edit-track => edit}/fields/helpers.ts (100%) rename packages/web/src/components/{edit-track => edit}/fields/stream-availability/HiddenAvailabilityFields.module.css (100%) rename packages/web/src/components/{edit-track => edit}/fields/stream-availability/HiddenAvailabilityFields.tsx (100%) rename packages/web/src/components/{edit-track => edit}/fields/stream-availability/SpecialAccessFields.module.css (100%) rename packages/web/src/components/{edit-track => edit}/fields/stream-availability/SpecialAccessFields.tsx (100%) rename packages/web/src/components/{edit-track => edit}/fields/stream-availability/collectible-gated/CollectibleGatedDescription.tsx (100%) rename packages/web/src/components/{edit-track => edit}/fields/stream-availability/collectible-gated/CollectibleGatedFields.module.css (100%) rename packages/web/src/components/{edit-track => edit}/fields/stream-availability/collectible-gated/CollectibleGatedFields.tsx (100%) rename packages/web/src/components/{edit-track => edit}/fields/stream-availability/collectible-gated/CollectibleGatedRadioField.tsx (100%) rename packages/web/src/components/{edit-track => edit}/fields/stream-availability/usdc-purchase-gated/UsdcPurchaseFields.tsx (100%) rename packages/web/src/components/{edit-track => edit}/fields/stream-availability/usdc-purchase-gated/UsdcPurchaseGatedRadioField.module.css (100%) rename packages/web/src/components/{edit-track => edit}/fields/stream-availability/usdc-purchase-gated/UsdcPurchaseGatedRadioField.tsx (100%) rename packages/web/src/components/{edit-track => edit}/fields/types.ts (100%) create mode 100644 packages/web/src/pages/upload-page/forms/EditCollectionFormForUpload.tsx diff --git a/packages/web/src/components/create-playlist/PlaylistForm.tsx b/packages/web/src/components/create-playlist/PlaylistForm.tsx index 21afa449452..673928ff8ba 100644 --- a/packages/web/src/components/create-playlist/PlaylistForm.tsx +++ b/packages/web/src/components/create-playlist/PlaylistForm.tsx @@ -5,7 +5,7 @@ import { Flex } from '@audius/harmony' import { Form, Formik } from 'formik' import { toFormikValidationSchema } from 'zod-formik-adapter' -import { AccessAndSaleField } from 'components/edit-track/fields/AccessAndSaleField' +import { AccessAndSaleField } from 'components/edit/fields/AccessAndSaleField' import { ArtworkField, TextAreaField, TextField } from 'components/form-fields' import { useCollectionCoverArt } from 'hooks/useCollectionCoverArt' diff --git a/packages/web/src/components/data-entry/AccessAndSaleTriggerLegacy.tsx b/packages/web/src/components/data-entry/AccessAndSaleTriggerLegacy.tsx index 6f1b20616b4..044adfc12dc 100644 --- a/packages/web/src/components/data-entry/AccessAndSaleTriggerLegacy.tsx +++ b/packages/web/src/components/data-entry/AccessAndSaleTriggerLegacy.tsx @@ -28,9 +28,9 @@ import { set, get } from 'lodash' import { useSelector } from 'react-redux' import { toFormikValidationSchema } from 'zod-formik-adapter' -import { AccessAndSaleFormSchema } from 'components/edit-track/fields/AccessAndSaleField' -import { AccessAndSaleMenuFields } from 'components/edit-track/fields/AccessAndSaleMenuFields' -import { getCombinedDefaultGatedConditionValues } from 'components/edit-track/fields/helpers' +import { AccessAndSaleFormSchema } from 'components/edit/fields/AccessAndSaleField' +import { AccessAndSaleMenuFields } from 'components/edit/fields/AccessAndSaleMenuFields' +import { getCombinedDefaultGatedConditionValues } from 'components/edit/fields/helpers' import { AccessAndSaleFormValues, DOWNLOAD_CONDITIONS, @@ -47,7 +47,7 @@ import { STREAM_AVAILABILITY_TYPE, STREAM_CONDITIONS, SpecialAccessType -} from 'components/edit-track/fields/types' +} from 'components/edit/fields/types' import { defaultFieldVisibility } from 'pages/track-page/utils' import { ContextualMenu } from './ContextualMenu' diff --git a/packages/web/src/components/data-entry/ReleaseDateTriggerLegacy.tsx b/packages/web/src/components/data-entry/ReleaseDateTriggerLegacy.tsx index ac724c21f20..b22c91067a0 100644 --- a/packages/web/src/components/data-entry/ReleaseDateTriggerLegacy.tsx +++ b/packages/web/src/components/data-entry/ReleaseDateTriggerLegacy.tsx @@ -16,7 +16,7 @@ import { mergeDateTimeValues, ReleaseDateFormValues, timeValidationSchema -} from 'components/edit-track/fields/ReleaseDateField' +} from 'components/edit/fields/ReleaseDateField' import { formatCalendarTime } from 'utils/dateUtils' import { ContextualMenu } from './ContextualMenu' diff --git a/packages/web/src/components/data-entry/StemsAndDownloadsTriggerLegacy.tsx b/packages/web/src/components/data-entry/StemsAndDownloadsTriggerLegacy.tsx index 3534ed113fd..7912adc8370 100644 --- a/packages/web/src/components/data-entry/StemsAndDownloadsTriggerLegacy.tsx +++ b/packages/web/src/components/data-entry/StemsAndDownloadsTriggerLegacy.tsx @@ -21,10 +21,10 @@ import { useSelector } from 'react-redux' import { toFormikValidationSchema } from 'zod-formik-adapter' import { - StemsAndDownloadsMenuFields, - stemsAndDownloadsSchema -} from 'components/edit-track/fields/StemsAndDownloadsMenuFields' -import { getCombinedDefaultGatedConditionValues } from 'components/edit-track/fields/helpers' + stemsAndDownloadsSchema, + StemsAndDownloadsMenuFields +} from 'components/edit/fields/StemsAndDownloadsMenuFields' +import { getCombinedDefaultGatedConditionValues } from 'components/edit/fields/helpers' import { DOWNLOAD_AVAILABILITY_TYPE, DOWNLOAD_CONDITIONS, @@ -35,9 +35,9 @@ import { IS_ORIGINAL_AVAILABLE, LAST_GATE_KEEPER, STEMS, - STREAM_CONDITIONS, - StemsAndDownloadsFormValues -} from 'components/edit-track/fields/types' + StemsAndDownloadsFormValues, + STREAM_CONDITIONS +} from 'components/edit/fields/types' import { ContextualMenu } from './ContextualMenu' import styles from './StemsAndDownloadsTriggerLegacy.module.css' diff --git a/packages/web/src/pages/upload-page/forms/EditCollectionForm.module.css b/packages/web/src/components/edit-collection/desktop/EditCollectionForm.module.css similarity index 100% rename from packages/web/src/pages/upload-page/forms/EditCollectionForm.module.css rename to packages/web/src/components/edit-collection/desktop/EditCollectionForm.module.css diff --git a/packages/web/src/pages/upload-page/forms/EditCollectionForm.tsx b/packages/web/src/components/edit-collection/desktop/EditCollectionForm.tsx similarity index 62% rename from packages/web/src/pages/upload-page/forms/EditCollectionForm.tsx rename to packages/web/src/components/edit-collection/desktop/EditCollectionForm.tsx index 1b31757b57f..0ce1645b3a9 100644 --- a/packages/web/src/pages/upload-page/forms/EditCollectionForm.tsx +++ b/packages/web/src/components/edit-collection/desktop/EditCollectionForm.tsx @@ -1,5 +1,3 @@ -import { useCallback } from 'react' - import { useFeatureFlag } from '@audius/common/hooks' import { AlbumSchema, @@ -7,10 +5,8 @@ import { PlaylistSchema } from '@audius/common/schemas' import { FeatureFlags } from '@audius/common/services' -import { UploadType } from '@audius/common/store' import { Flex, Text } from '@audius/harmony' import { Form, Formik } from 'formik' -import moment from 'moment' import { toFormikValidationSchema } from 'zod-formik-adapter' import { @@ -21,14 +17,13 @@ import { } from 'components/form-fields' import { Tile } from 'components/tile' -import { AccessAndSaleField } from '../../../components/edit-track/fields/AccessAndSaleField' -import { CollectionTrackFieldArray } from '../../../components/edit-track/fields/CollectionTrackFieldArray' -import { ReleaseDateFieldLegacy } from '../../../components/edit-track/fields/ReleaseDateFieldLegacy' -import { SelectGenreField } from '../../../components/edit-track/fields/SelectGenreField' -import { SelectMoodField } from '../../../components/edit-track/fields/SelectMoodField' -import { StemsAndDownloadsCollectionField } from '../../../components/edit-track/fields/StemsAndDownloadsCollectionsField' -import { AnchoredSubmitRow } from '../components/AnchoredSubmitRow' -import { CollectionFormState } from '../types' +import { AnchoredSubmitRow } from '../../../pages/upload-page/components/AnchoredSubmitRow' +import { AccessAndSaleField } from '../../edit/fields/AccessAndSaleField' +import { CollectionTrackFieldArray } from '../../edit/fields/CollectionTrackFieldArray' +import { ReleaseDateFieldLegacy } from '../../edit/fields/ReleaseDateFieldLegacy' +import { SelectGenreField } from '../../edit/fields/SelectGenreField' +import { SelectMoodField } from '../../edit/fields/SelectMoodField' +import { StemsAndDownloadsCollectionField } from '../../edit/fields/StemsAndDownloadsCollectionsField' import styles from './EditCollectionForm.module.css' @@ -44,14 +39,13 @@ const messages = { } type EditCollectionFormProps = { - formState: CollectionFormState - onContinue: (formState: CollectionFormState) => void + initialValues: CollectionValues + onSubmit: (values: CollectionValues) => void + isAlbum: boolean } export const EditCollectionForm = (props: EditCollectionFormProps) => { - const { formState, onContinue } = props - const { tracks, uploadType, metadata } = formState - const isAlbum = uploadType === UploadType.ALBUM + const { initialValues, onSubmit, isAlbum } = props const { isEnabled: isPremiumAlbumsEnabled } = useFeatureFlag( FeatureFlags.PREMIUM_ALBUMS_ENABLED ) @@ -60,44 +54,13 @@ export const EditCollectionForm = (props: EditCollectionFormProps) => { ) const showPremiumAlbums = isPremiumAlbumsEnabled && isUSDCUploadEnabled - const initialValues: CollectionValues = { - ...metadata, - is_album: isAlbum, - is_downloadable: false, - artwork: null, - playlist_name: '', - description: '', - release_date: moment().toString(), - is_private: false, - trackDetails: { - genre: null, - mood: null, - tags: '' - }, - tracks: tracks.map((track) => ({ ...track, override: false })) - } - - const handleSubmit = useCallback( - (values: CollectionValues) => { - onContinue({ - uploadType, - tracks: values.tracks, - metadata: values - }) - }, - [onContinue, uploadType] - ) - - const collectionTypeName = - uploadType === UploadType.ALBUM ? 'Album' : 'Playlist' - - const validationSchema = - uploadType === UploadType.ALBUM ? AlbumSchema : PlaylistSchema + const collectionTypeName = isAlbum ? 'Album' : 'Playlist' + const validationSchema = isAlbum ? AlbumSchema : PlaylistSchema return (
diff --git a/packages/web/src/components/edit-playlist/desktop/EditPlaylistModal.module.css b/packages/web/src/components/edit-collection/desktop/EditCollectionModal.module.css similarity index 100% rename from packages/web/src/components/edit-playlist/desktop/EditPlaylistModal.module.css rename to packages/web/src/components/edit-collection/desktop/EditCollectionModal.module.css diff --git a/packages/web/src/components/edit-playlist/desktop/EditPlaylistModal.tsx b/packages/web/src/components/edit-collection/desktop/EditCollectionModal.tsx similarity index 97% rename from packages/web/src/components/edit-playlist/desktop/EditPlaylistModal.tsx rename to packages/web/src/components/edit-collection/desktop/EditCollectionModal.tsx index 694cd3a99f3..107a0116a03 100644 --- a/packages/web/src/components/edit-playlist/desktop/EditPlaylistModal.tsx +++ b/packages/web/src/components/edit-collection/desktop/EditCollectionModal.tsx @@ -28,7 +28,7 @@ import { useSelector } from 'utils/reducer' import { TRENDING_PAGE } from 'utils/route' import zIndex from 'utils/zIndex' -import styles from './EditPlaylistModal.module.css' +import styles from './EditCollectionModal.module.css' const { editPlaylist } = cacheCollectionsActions const { getCollectionWithUser } = cacheCollectionsSelectors const { fetchSavedPlaylists } = accountActions @@ -46,7 +46,7 @@ const messages = { } } -const EditPlaylistModal = () => { +const EditCollectionModal = () => { const dispatch = useDispatch() const { isOpen, onClose, data } = useEditPlaylistModal() const { collectionId, isCollectionViewed } = data @@ -143,4 +143,4 @@ const EditPlaylistModal = () => { ) } -export default EditPlaylistModal +export default EditCollectionModal diff --git a/packages/web/src/components/edit-playlist/mobile/EditPlaylistPage.module.css b/packages/web/src/components/edit-collection/mobile/EditPlaylistPage.module.css similarity index 100% rename from packages/web/src/components/edit-playlist/mobile/EditPlaylistPage.module.css rename to packages/web/src/components/edit-collection/mobile/EditPlaylistPage.module.css diff --git a/packages/web/src/components/edit-playlist/mobile/EditPlaylistPage.tsx b/packages/web/src/components/edit-collection/mobile/EditPlaylistPage.tsx similarity index 100% rename from packages/web/src/components/edit-playlist/mobile/EditPlaylistPage.tsx rename to packages/web/src/components/edit-collection/mobile/EditPlaylistPage.tsx diff --git a/packages/web/src/components/edit-playlist/mobile/RemovePlaylistTrackDrawer.module.css b/packages/web/src/components/edit-collection/mobile/RemovePlaylistTrackDrawer.module.css similarity index 100% rename from packages/web/src/components/edit-playlist/mobile/RemovePlaylistTrackDrawer.module.css rename to packages/web/src/components/edit-collection/mobile/RemovePlaylistTrackDrawer.module.css diff --git a/packages/web/src/components/edit-playlist/mobile/RemovePlaylistTrackDrawer.tsx b/packages/web/src/components/edit-collection/mobile/RemovePlaylistTrackDrawer.tsx similarity index 100% rename from packages/web/src/components/edit-playlist/mobile/RemovePlaylistTrackDrawer.tsx rename to packages/web/src/components/edit-collection/mobile/RemovePlaylistTrackDrawer.tsx diff --git a/packages/web/src/components/edit-track/EditTrackForm.tsx b/packages/web/src/components/edit-track/EditTrackForm.tsx index 35a2d133bdf..922a9bf8cdd 100644 --- a/packages/web/src/components/edit-track/EditTrackForm.tsx +++ b/packages/web/src/components/edit-track/EditTrackForm.tsx @@ -21,18 +21,18 @@ import { useFlag } from 'hooks/useRemoteConfig' import { UploadFormScrollContext } from 'pages/upload-page/UploadPage' import { AnchoredSubmitRow } from '../../pages/upload-page/components/AnchoredSubmitRow' -import { TrackEditFormValues } from '../../pages/upload-page/types' +import { AccessAndSaleField } from '../edit/fields/AccessAndSaleField' +import { AttributionField } from '../edit/fields/AttributionField' +import { MultiTrackSidebar } from '../edit/fields/MultiTrackSidebar' +import { ReleaseDateField } from '../edit/fields/ReleaseDateField' +import { ReleaseDateFieldLegacy } from '../edit/fields/ReleaseDateFieldLegacy' +import { RemixSettingsField } from '../edit/fields/RemixSettingsField' +import { StemsAndDownloadsField } from '../edit/fields/StemsAndDownloadsField' +import { TrackMetadataFields } from '../edit/fields/TrackMetadataFields' import styles from './EditTrackForm.module.css' import { PreviewButton } from './components/PreviewButton' -import { AccessAndSaleField } from './fields/AccessAndSaleField' -import { AttributionField } from './fields/AttributionField' -import { MultiTrackSidebar } from './fields/MultiTrackSidebar' -import { ReleaseDateField } from './fields/ReleaseDateField' -import { ReleaseDateFieldLegacy } from './fields/ReleaseDateFieldLegacy' -import { RemixSettingsField } from './fields/RemixSettingsField' -import { StemsAndDownloadsField } from './fields/StemsAndDownloadsField' -import { TrackMetadataFields } from './fields/TrackMetadataFields' +import { TrackEditFormValues } from './types' const messages = { multiTrackCount: (index: number, total: number) => diff --git a/packages/web/src/components/edit-track/components/PreviewButton.tsx b/packages/web/src/components/edit-track/components/PreviewButton.tsx index 38cd96fd15d..e5ad1952c47 100644 --- a/packages/web/src/components/edit-track/components/PreviewButton.tsx +++ b/packages/web/src/components/edit-track/components/PreviewButton.tsx @@ -1,9 +1,9 @@ import { useCallback, useContext, useEffect, useState } from 'react' +import { TrackForUpload } from '@audius/common/store' import { IconPause, IconPlay, PlainButton } from '@audius/harmony' import { useField } from 'formik' -import { CollectionTrackForUpload } from '../../../pages/upload-page/types' import { UploadPreviewContext } from '../utils/uploadPreviewContext' const messages = { @@ -21,9 +21,7 @@ export const PreviewButton = (props: PreviewButtonProps) => { const { index, className } = props const { playingPreviewIndex, togglePreview } = useContext(UploadPreviewContext) - const [{ value: track }] = useField( - `tracks.${index}` - ) + const [{ value: track }] = useField(`tracks.${index}`) const isPreviewPlaying = playingPreviewIndex === index const [canPlayPreview, setCanPlayPreview] = useState(false) diff --git a/packages/web/src/pages/upload-page/hooks.ts b/packages/web/src/components/edit-track/hooks.ts similarity index 100% rename from packages/web/src/pages/upload-page/hooks.ts rename to packages/web/src/components/edit-track/hooks.ts diff --git a/packages/web/src/components/edit-track/types.ts b/packages/web/src/components/edit-track/types.ts new file mode 100644 index 00000000000..72a9ed1f816 --- /dev/null +++ b/packages/web/src/components/edit-track/types.ts @@ -0,0 +1,19 @@ +import { TrackMetadataForUpload, TrackForUpload } from '@audius/common/store' +import { Nullable } from '@audius/common/utils' + +export type SingleTrackEditValues = Omit & { + licenseType: { + allowAttribution: Nullable + commercialUse: Nullable + derivativeWorks: Nullable + } + remix_of: { + tracks: { parent_track_id: number }[] + } | null +} + +export type TrackEditFormValues = { + tracks: TrackForUpload[] + trackMetadatas: SingleTrackEditValues[] + trackMetadatasIndex: number +} diff --git a/packages/web/src/components/edit-track/fields/AccessAndSaleField.module.css b/packages/web/src/components/edit/fields/AccessAndSaleField.module.css similarity index 100% rename from packages/web/src/components/edit-track/fields/AccessAndSaleField.module.css rename to packages/web/src/components/edit/fields/AccessAndSaleField.module.css diff --git a/packages/web/src/components/edit-track/fields/AccessAndSaleField.tsx b/packages/web/src/components/edit/fields/AccessAndSaleField.tsx similarity index 99% rename from packages/web/src/components/edit-track/fields/AccessAndSaleField.tsx rename to packages/web/src/components/edit/fields/AccessAndSaleField.tsx index a80c3edd04b..b19d796116c 100644 --- a/packages/web/src/components/edit-track/fields/AccessAndSaleField.tsx +++ b/packages/web/src/components/edit/fields/AccessAndSaleField.tsx @@ -40,14 +40,11 @@ import { import DynamicImage from 'components/dynamic-image/DynamicImage' import { defaultFieldVisibility } from 'pages/track-page/utils' -import { - useIndexedField, - useTrackField -} from '../../../pages/upload-page/hooks' +import { useIndexedField, useTrackField } from '../../edit-track/hooks' import { SingleTrackEditValues, TrackEditFormValues -} from '../../../pages/upload-page/types' +} from '../../edit-track/types' import styles from './AccessAndSaleField.module.css' import { AccessAndSaleMenuFields } from './AccessAndSaleMenuFields' diff --git a/packages/web/src/components/edit-track/fields/AccessAndSaleMenuFields.tsx b/packages/web/src/components/edit/fields/AccessAndSaleMenuFields.tsx similarity index 98% rename from packages/web/src/components/edit-track/fields/AccessAndSaleMenuFields.tsx rename to packages/web/src/components/edit/fields/AccessAndSaleMenuFields.tsx index 46c41ce85c3..f3493d9209a 100644 --- a/packages/web/src/components/edit-track/fields/AccessAndSaleMenuFields.tsx +++ b/packages/web/src/components/edit/fields/AccessAndSaleMenuFields.tsx @@ -21,7 +21,7 @@ import { ModalRadioItem } from 'components/modal-radio/ModalRadioItem' import { useFlag } from 'hooks/useRemoteConfig' import { pluralize } from 'utils/stringUtils' -import { SingleTrackEditValues } from '../../../pages/upload-page/types' +import { SingleTrackEditValues } from '../../edit-track/types' import styles from './AccessAndSaleField.module.css' import { HiddenAvailabilityFields } from './stream-availability/HiddenAvailabilityFields' diff --git a/packages/web/src/components/edit-track/fields/AttributionField.module.css b/packages/web/src/components/edit/fields/AttributionField.module.css similarity index 100% rename from packages/web/src/components/edit-track/fields/AttributionField.module.css rename to packages/web/src/components/edit/fields/AttributionField.module.css diff --git a/packages/web/src/components/edit-track/fields/AttributionField.tsx b/packages/web/src/components/edit/fields/AttributionField.tsx similarity index 99% rename from packages/web/src/components/edit-track/fields/AttributionField.tsx rename to packages/web/src/components/edit/fields/AttributionField.tsx index ab057a43761..0a84c531c60 100644 --- a/packages/web/src/components/edit-track/fields/AttributionField.tsx +++ b/packages/web/src/components/edit/fields/AttributionField.tsx @@ -19,12 +19,12 @@ import { SelectedValues } from 'components/data-entry/ContextualMenu' import { Divider } from 'components/divider' +import { useTrackField } from 'components/edit-track/hooks' +import { SingleTrackEditValues } from 'components/edit-track/types' import { computeLicenseIcons } from 'components/edit-track/utils/computeLicenseIcons' import { TextField } from 'components/form-fields' import { SegmentedControlField } from 'components/form-fields/SegmentedControlField' import layoutStyles from 'components/layout/layout.module.css' -import { useTrackField } from 'pages/upload-page/hooks' -import { SingleTrackEditValues } from 'pages/upload-page/types' import { env } from 'services/env' import styles from './AttributionField.module.css' diff --git a/packages/web/src/components/edit-track/fields/BoxedTextField.module.css b/packages/web/src/components/edit/fields/BoxedTextField.module.css similarity index 100% rename from packages/web/src/components/edit-track/fields/BoxedTextField.module.css rename to packages/web/src/components/edit/fields/BoxedTextField.module.css diff --git a/packages/web/src/components/edit-track/fields/BoxedTextField.tsx b/packages/web/src/components/edit/fields/BoxedTextField.tsx similarity index 100% rename from packages/web/src/components/edit-track/fields/BoxedTextField.tsx rename to packages/web/src/components/edit/fields/BoxedTextField.tsx diff --git a/packages/web/src/components/edit-track/fields/CollectionTrackField.module.css b/packages/web/src/components/edit/fields/CollectionTrackField.module.css similarity index 100% rename from packages/web/src/components/edit-track/fields/CollectionTrackField.module.css rename to packages/web/src/components/edit/fields/CollectionTrackField.module.css diff --git a/packages/web/src/components/edit-track/fields/CollectionTrackField.tsx b/packages/web/src/components/edit/fields/CollectionTrackField.tsx similarity index 93% rename from packages/web/src/components/edit-track/fields/CollectionTrackField.tsx rename to packages/web/src/components/edit/fields/CollectionTrackField.tsx index 644cf0d605d..ed71e8c4164 100644 --- a/packages/web/src/components/edit-track/fields/CollectionTrackField.tsx +++ b/packages/web/src/components/edit/fields/CollectionTrackField.tsx @@ -4,9 +4,9 @@ import { IconDrag, IconTrash, Text, IconButton } from '@audius/harmony' import { useField } from 'formik' import { Tile } from 'components/tile' +import { CollectionTrackForUpload } from 'pages/upload-page/types' -import { CollectionTrackForUpload } from '../../../pages/upload-page/types' -import { UploadPreviewContext } from '../utils/uploadPreviewContext' +import { UploadPreviewContext } from '../../edit-track/utils/uploadPreviewContext' import styles from './CollectionTrackField.module.css' import { TrackNameField } from './TrackNameField' diff --git a/packages/web/src/components/edit-track/fields/CollectionTrackFieldArray.tsx b/packages/web/src/components/edit/fields/CollectionTrackFieldArray.tsx similarity index 96% rename from packages/web/src/components/edit-track/fields/CollectionTrackFieldArray.tsx rename to packages/web/src/components/edit/fields/CollectionTrackFieldArray.tsx index b70de312a7a..43eadc84022 100644 --- a/packages/web/src/components/edit-track/fields/CollectionTrackFieldArray.tsx +++ b/packages/web/src/components/edit/fields/CollectionTrackFieldArray.tsx @@ -1,7 +1,7 @@ import { FieldArray, useField } from 'formik' import { DragDropContext, Draggable, Droppable } from 'react-beautiful-dnd' -import { CollectionTrackForUpload } from '../../../pages/upload-page/types' +import { CollectionTrackForUpload } from 'pages/upload-page/types' import { CollectionTrackField } from './CollectionTrackField' diff --git a/packages/web/src/components/edit-track/fields/DatePickerField.module.css b/packages/web/src/components/edit/fields/DatePickerField.module.css similarity index 100% rename from packages/web/src/components/edit-track/fields/DatePickerField.module.css rename to packages/web/src/components/edit/fields/DatePickerField.module.css diff --git a/packages/web/src/components/edit-track/fields/DatePickerField.tsx b/packages/web/src/components/edit/fields/DatePickerField.tsx similarity index 100% rename from packages/web/src/components/edit-track/fields/DatePickerField.tsx rename to packages/web/src/components/edit/fields/DatePickerField.tsx diff --git a/packages/web/src/components/edit-track/fields/ModalField.module.css b/packages/web/src/components/edit/fields/ModalField.module.css similarity index 100% rename from packages/web/src/components/edit-track/fields/ModalField.module.css rename to packages/web/src/components/edit/fields/ModalField.module.css diff --git a/packages/web/src/components/edit-track/fields/ModalField.tsx b/packages/web/src/components/edit/fields/ModalField.tsx similarity index 100% rename from packages/web/src/components/edit-track/fields/ModalField.tsx rename to packages/web/src/components/edit/fields/ModalField.tsx diff --git a/packages/web/src/components/edit-track/fields/MultiTrackSidebar.module.css b/packages/web/src/components/edit/fields/MultiTrackSidebar.module.css similarity index 100% rename from packages/web/src/components/edit-track/fields/MultiTrackSidebar.module.css rename to packages/web/src/components/edit/fields/MultiTrackSidebar.module.css diff --git a/packages/web/src/components/edit-track/fields/MultiTrackSidebar.tsx b/packages/web/src/components/edit/fields/MultiTrackSidebar.tsx similarity index 97% rename from packages/web/src/components/edit-track/fields/MultiTrackSidebar.tsx rename to packages/web/src/components/edit/fields/MultiTrackSidebar.tsx index a2ca311270f..e371014ad30 100644 --- a/packages/web/src/components/edit-track/fields/MultiTrackSidebar.tsx +++ b/packages/web/src/components/edit/fields/MultiTrackSidebar.tsx @@ -17,12 +17,12 @@ import DynamicImage from 'components/dynamic-image/DynamicImage' import layoutStyles from 'components/layout/layout.module.css' import { UploadFormScrollContext } from '../../../pages/upload-page/UploadPage' -import { useIndexedField } from '../../../pages/upload-page/hooks' +import { useIndexedField } from '../../edit-track/hooks' import { SingleTrackEditValues, TrackEditFormValues -} from '../../../pages/upload-page/types' -import { UploadPreviewContext } from '../utils/uploadPreviewContext' +} from '../../edit-track/types' +import { UploadPreviewContext } from '../../edit-track/utils/uploadPreviewContext' import styles from './MultiTrackSidebar.module.css' diff --git a/packages/web/src/components/edit-track/fields/ReleaseDateField.module.css b/packages/web/src/components/edit/fields/ReleaseDateField.module.css similarity index 100% rename from packages/web/src/components/edit-track/fields/ReleaseDateField.module.css rename to packages/web/src/components/edit/fields/ReleaseDateField.module.css diff --git a/packages/web/src/components/edit-track/fields/ReleaseDateField.tsx b/packages/web/src/components/edit/fields/ReleaseDateField.tsx similarity index 98% rename from packages/web/src/components/edit-track/fields/ReleaseDateField.tsx rename to packages/web/src/components/edit/fields/ReleaseDateField.tsx index 554e712adf0..2756eb5a7ed 100644 --- a/packages/web/src/components/edit-track/fields/ReleaseDateField.tsx +++ b/packages/web/src/components/edit/fields/ReleaseDateField.tsx @@ -26,8 +26,8 @@ import layoutStyles from 'components/layout/layout.module.css' import { ModalRadioItem } from 'components/modal-radio/ModalRadioItem' import { formatCalendarTime } from 'utils/dateUtils' -import { useTrackField } from '../../../pages/upload-page/hooks' -import { SingleTrackEditValues } from '../../../pages/upload-page/types' +import { useTrackField } from '../../edit-track/hooks' +import { SingleTrackEditValues } from '../../edit-track/types' import { DatePickerField } from './DatePickerField' import styles from './ReleaseDateField.module.css' diff --git a/packages/web/src/components/edit-track/fields/ReleaseDateFieldLegacy.module.css b/packages/web/src/components/edit/fields/ReleaseDateFieldLegacy.module.css similarity index 100% rename from packages/web/src/components/edit-track/fields/ReleaseDateFieldLegacy.module.css rename to packages/web/src/components/edit/fields/ReleaseDateFieldLegacy.module.css diff --git a/packages/web/src/components/edit-track/fields/ReleaseDateFieldLegacy.tsx b/packages/web/src/components/edit/fields/ReleaseDateFieldLegacy.tsx similarity index 94% rename from packages/web/src/components/edit-track/fields/ReleaseDateFieldLegacy.tsx rename to packages/web/src/components/edit/fields/ReleaseDateFieldLegacy.tsx index 7e124b59ef3..224b3b3e82f 100644 --- a/packages/web/src/components/edit-track/fields/ReleaseDateFieldLegacy.tsx +++ b/packages/web/src/components/edit/fields/ReleaseDateFieldLegacy.tsx @@ -9,8 +9,8 @@ import { SelectedValue } from 'components/data-entry/ContextualMenu' -import { useTrackField } from '../../../pages/upload-page/hooks' -import { SingleTrackEditValues } from '../../../pages/upload-page/types' +import { useTrackField } from '../../edit-track/hooks' +import { SingleTrackEditValues } from '../../edit-track/types' import { DatePickerField } from './DatePickerField' import styles from './ReleaseDateFieldLegacy.module.css' diff --git a/packages/web/src/components/edit-track/fields/RemixSettingsField/RemixSettingsField.module.css b/packages/web/src/components/edit/fields/RemixSettingsField/RemixSettingsField.module.css similarity index 100% rename from packages/web/src/components/edit-track/fields/RemixSettingsField/RemixSettingsField.module.css rename to packages/web/src/components/edit/fields/RemixSettingsField/RemixSettingsField.module.css diff --git a/packages/web/src/components/edit-track/fields/RemixSettingsField/RemixSettingsField.tsx b/packages/web/src/components/edit/fields/RemixSettingsField/RemixSettingsField.tsx similarity index 96% rename from packages/web/src/components/edit-track/fields/RemixSettingsField/RemixSettingsField.tsx rename to packages/web/src/components/edit/fields/RemixSettingsField/RemixSettingsField.tsx index 17c5a7c15c1..5b7e9df0688 100644 --- a/packages/web/src/components/edit-track/fields/RemixSettingsField/RemixSettingsField.tsx +++ b/packages/web/src/components/edit/fields/RemixSettingsField/RemixSettingsField.tsx @@ -18,8 +18,8 @@ import { } from 'components/data-entry/ContextualMenu' import { fullTrackPage } from 'utils/route' -import { useTrackField } from '../../../../pages/upload-page/hooks' -import { SingleTrackEditValues } from '../../../../pages/upload-page/types' +import { useTrackField } from '../../../edit-track/hooks' +import { SingleTrackEditValues } from '../../../edit-track/types' import { IS_STREAM_GATED, STREAM_CONDITIONS } from '../types' import styles from './RemixSettingsField.module.css' diff --git a/packages/web/src/components/edit-track/fields/RemixSettingsField/RemixSettingsMenuFields.tsx b/packages/web/src/components/edit/fields/RemixSettingsField/RemixSettingsMenuFields.tsx similarity index 100% rename from packages/web/src/components/edit-track/fields/RemixSettingsField/RemixSettingsMenuFields.tsx rename to packages/web/src/components/edit/fields/RemixSettingsField/RemixSettingsMenuFields.tsx diff --git a/packages/web/src/components/edit-track/fields/RemixSettingsField/TrackInfo.tsx b/packages/web/src/components/edit/fields/RemixSettingsField/TrackInfo.tsx similarity index 100% rename from packages/web/src/components/edit-track/fields/RemixSettingsField/TrackInfo.tsx rename to packages/web/src/components/edit/fields/RemixSettingsField/TrackInfo.tsx diff --git a/packages/web/src/components/edit-track/fields/RemixSettingsField/index.ts b/packages/web/src/components/edit/fields/RemixSettingsField/index.ts similarity index 100% rename from packages/web/src/components/edit-track/fields/RemixSettingsField/index.ts rename to packages/web/src/components/edit/fields/RemixSettingsField/index.ts diff --git a/packages/web/src/components/edit-track/fields/RemixSettingsField/types.ts b/packages/web/src/components/edit/fields/RemixSettingsField/types.ts similarity index 100% rename from packages/web/src/components/edit-track/fields/RemixSettingsField/types.ts rename to packages/web/src/components/edit/fields/RemixSettingsField/types.ts diff --git a/packages/web/src/components/edit-track/fields/SelectGenreField.tsx b/packages/web/src/components/edit/fields/SelectGenreField.tsx similarity index 100% rename from packages/web/src/components/edit-track/fields/SelectGenreField.tsx rename to packages/web/src/components/edit/fields/SelectGenreField.tsx diff --git a/packages/web/src/components/edit-track/fields/SelectMoodField.tsx b/packages/web/src/components/edit/fields/SelectMoodField.tsx similarity index 100% rename from packages/web/src/components/edit-track/fields/SelectMoodField.tsx rename to packages/web/src/components/edit/fields/SelectMoodField.tsx diff --git a/packages/web/src/components/edit-track/fields/StemFilesView.module.css b/packages/web/src/components/edit/fields/StemFilesView.module.css similarity index 100% rename from packages/web/src/components/edit-track/fields/StemFilesView.module.css rename to packages/web/src/components/edit/fields/StemFilesView.module.css diff --git a/packages/web/src/components/edit-track/fields/StemFilesView.tsx b/packages/web/src/components/edit/fields/StemFilesView.tsx similarity index 100% rename from packages/web/src/components/edit-track/fields/StemFilesView.tsx rename to packages/web/src/components/edit/fields/StemFilesView.tsx diff --git a/packages/web/src/components/edit-track/fields/StemsAndDownloadsCollectionsField.tsx b/packages/web/src/components/edit/fields/StemsAndDownloadsCollectionsField.tsx similarity index 100% rename from packages/web/src/components/edit-track/fields/StemsAndDownloadsCollectionsField.tsx rename to packages/web/src/components/edit/fields/StemsAndDownloadsCollectionsField.tsx diff --git a/packages/web/src/components/edit-track/fields/StemsAndDownloadsField.module.css b/packages/web/src/components/edit/fields/StemsAndDownloadsField.module.css similarity index 100% rename from packages/web/src/components/edit-track/fields/StemsAndDownloadsField.module.css rename to packages/web/src/components/edit/fields/StemsAndDownloadsField.module.css diff --git a/packages/web/src/components/edit-track/fields/StemsAndDownloadsField.tsx b/packages/web/src/components/edit/fields/StemsAndDownloadsField.tsx similarity index 99% rename from packages/web/src/components/edit-track/fields/StemsAndDownloadsField.tsx rename to packages/web/src/components/edit/fields/StemsAndDownloadsField.tsx index 3b4d35d864f..b3789d6eb6a 100644 --- a/packages/web/src/components/edit-track/fields/StemsAndDownloadsField.tsx +++ b/packages/web/src/components/edit/fields/StemsAndDownloadsField.tsx @@ -27,7 +27,7 @@ import { SelectedValues } from 'components/data-entry/ContextualMenu' -import { useTrackField } from '../../../pages/upload-page/hooks' +import { useTrackField } from '../../edit-track/hooks' import { StemsAndDownloadsMenuFields, diff --git a/packages/web/src/components/edit-track/fields/StemsAndDownloadsMenuFields.tsx b/packages/web/src/components/edit/fields/StemsAndDownloadsMenuFields.tsx similarity index 100% rename from packages/web/src/components/edit-track/fields/StemsAndDownloadsMenuFields.tsx rename to packages/web/src/components/edit/fields/StemsAndDownloadsMenuFields.tsx diff --git a/packages/web/src/components/edit-track/fields/SwitchRowField.module.css b/packages/web/src/components/edit/fields/SwitchRowField.module.css similarity index 100% rename from packages/web/src/components/edit-track/fields/SwitchRowField.module.css rename to packages/web/src/components/edit/fields/SwitchRowField.module.css diff --git a/packages/web/src/components/edit-track/fields/SwitchRowField.tsx b/packages/web/src/components/edit/fields/SwitchRowField.tsx similarity index 100% rename from packages/web/src/components/edit-track/fields/SwitchRowField.tsx rename to packages/web/src/components/edit/fields/SwitchRowField.tsx diff --git a/packages/web/src/components/edit-track/fields/TrackMetadataFields.module.css b/packages/web/src/components/edit/fields/TrackMetadataFields.module.css similarity index 100% rename from packages/web/src/components/edit-track/fields/TrackMetadataFields.module.css rename to packages/web/src/components/edit/fields/TrackMetadataFields.module.css diff --git a/packages/web/src/components/edit-track/fields/TrackMetadataFields.tsx b/packages/web/src/components/edit/fields/TrackMetadataFields.tsx similarity index 96% rename from packages/web/src/components/edit-track/fields/TrackMetadataFields.tsx rename to packages/web/src/components/edit/fields/TrackMetadataFields.tsx index 45509b5c08d..2d1508933e0 100644 --- a/packages/web/src/components/edit-track/fields/TrackMetadataFields.tsx +++ b/packages/web/src/components/edit/fields/TrackMetadataFields.tsx @@ -4,7 +4,7 @@ import { useField } from 'formik' import { ArtworkField, TagField, TextAreaField } from 'components/form-fields' import layoutStyles from 'components/layout/layout.module.css' -import { getTrackFieldName } from '../../../pages/upload-page/hooks' +import { getTrackFieldName } from '../../edit-track/hooks' import { SelectGenreField } from './SelectGenreField' import { SelectMoodField } from './SelectMoodField' diff --git a/packages/web/src/components/edit-track/fields/TrackNameField.tsx b/packages/web/src/components/edit/fields/TrackNameField.tsx similarity index 100% rename from packages/web/src/components/edit-track/fields/TrackNameField.tsx rename to packages/web/src/components/edit/fields/TrackNameField.tsx diff --git a/packages/web/src/components/edit-track/fields/download-availability/DownloadAvailability.tsx b/packages/web/src/components/edit/fields/download-availability/DownloadAvailability.tsx similarity index 99% rename from packages/web/src/components/edit-track/fields/download-availability/DownloadAvailability.tsx rename to packages/web/src/components/edit/fields/download-availability/DownloadAvailability.tsx index 9c1ca5bfcbe..a5b430da19a 100644 --- a/packages/web/src/components/edit-track/fields/download-availability/DownloadAvailability.tsx +++ b/packages/web/src/components/edit/fields/download-availability/DownloadAvailability.tsx @@ -30,7 +30,7 @@ import { useFormikContext } from 'formik' import { MenuFormCallbackStatus } from 'components/data-entry/ContextualMenu' import { Divider } from 'components/divider' -import { useTrackField } from 'pages/upload-page/hooks' +import { useTrackField } from 'components/edit-track/hooks' import { make, track } from 'services/analytics' import { STREAM_CONDITIONS } from '../types' diff --git a/packages/web/src/components/edit-track/fields/download-availability/DownloadPriceField.tsx b/packages/web/src/components/edit/fields/download-availability/DownloadPriceField.tsx similarity index 100% rename from packages/web/src/components/edit-track/fields/download-availability/DownloadPriceField.tsx rename to packages/web/src/components/edit/fields/download-availability/DownloadPriceField.tsx diff --git a/packages/web/src/components/edit-track/fields/helpers.ts b/packages/web/src/components/edit/fields/helpers.ts similarity index 100% rename from packages/web/src/components/edit-track/fields/helpers.ts rename to packages/web/src/components/edit/fields/helpers.ts diff --git a/packages/web/src/components/edit-track/fields/stream-availability/HiddenAvailabilityFields.module.css b/packages/web/src/components/edit/fields/stream-availability/HiddenAvailabilityFields.module.css similarity index 100% rename from packages/web/src/components/edit-track/fields/stream-availability/HiddenAvailabilityFields.module.css rename to packages/web/src/components/edit/fields/stream-availability/HiddenAvailabilityFields.module.css diff --git a/packages/web/src/components/edit-track/fields/stream-availability/HiddenAvailabilityFields.tsx b/packages/web/src/components/edit/fields/stream-availability/HiddenAvailabilityFields.tsx similarity index 100% rename from packages/web/src/components/edit-track/fields/stream-availability/HiddenAvailabilityFields.tsx rename to packages/web/src/components/edit/fields/stream-availability/HiddenAvailabilityFields.tsx diff --git a/packages/web/src/components/edit-track/fields/stream-availability/SpecialAccessFields.module.css b/packages/web/src/components/edit/fields/stream-availability/SpecialAccessFields.module.css similarity index 100% rename from packages/web/src/components/edit-track/fields/stream-availability/SpecialAccessFields.module.css rename to packages/web/src/components/edit/fields/stream-availability/SpecialAccessFields.module.css diff --git a/packages/web/src/components/edit-track/fields/stream-availability/SpecialAccessFields.tsx b/packages/web/src/components/edit/fields/stream-availability/SpecialAccessFields.tsx similarity index 100% rename from packages/web/src/components/edit-track/fields/stream-availability/SpecialAccessFields.tsx rename to packages/web/src/components/edit/fields/stream-availability/SpecialAccessFields.tsx diff --git a/packages/web/src/components/edit-track/fields/stream-availability/collectible-gated/CollectibleGatedDescription.tsx b/packages/web/src/components/edit/fields/stream-availability/collectible-gated/CollectibleGatedDescription.tsx similarity index 100% rename from packages/web/src/components/edit-track/fields/stream-availability/collectible-gated/CollectibleGatedDescription.tsx rename to packages/web/src/components/edit/fields/stream-availability/collectible-gated/CollectibleGatedDescription.tsx diff --git a/packages/web/src/components/edit-track/fields/stream-availability/collectible-gated/CollectibleGatedFields.module.css b/packages/web/src/components/edit/fields/stream-availability/collectible-gated/CollectibleGatedFields.module.css similarity index 100% rename from packages/web/src/components/edit-track/fields/stream-availability/collectible-gated/CollectibleGatedFields.module.css rename to packages/web/src/components/edit/fields/stream-availability/collectible-gated/CollectibleGatedFields.module.css diff --git a/packages/web/src/components/edit-track/fields/stream-availability/collectible-gated/CollectibleGatedFields.tsx b/packages/web/src/components/edit/fields/stream-availability/collectible-gated/CollectibleGatedFields.tsx similarity index 100% rename from packages/web/src/components/edit-track/fields/stream-availability/collectible-gated/CollectibleGatedFields.tsx rename to packages/web/src/components/edit/fields/stream-availability/collectible-gated/CollectibleGatedFields.tsx diff --git a/packages/web/src/components/edit-track/fields/stream-availability/collectible-gated/CollectibleGatedRadioField.tsx b/packages/web/src/components/edit/fields/stream-availability/collectible-gated/CollectibleGatedRadioField.tsx similarity index 100% rename from packages/web/src/components/edit-track/fields/stream-availability/collectible-gated/CollectibleGatedRadioField.tsx rename to packages/web/src/components/edit/fields/stream-availability/collectible-gated/CollectibleGatedRadioField.tsx diff --git a/packages/web/src/components/edit-track/fields/stream-availability/usdc-purchase-gated/UsdcPurchaseFields.tsx b/packages/web/src/components/edit/fields/stream-availability/usdc-purchase-gated/UsdcPurchaseFields.tsx similarity index 100% rename from packages/web/src/components/edit-track/fields/stream-availability/usdc-purchase-gated/UsdcPurchaseFields.tsx rename to packages/web/src/components/edit/fields/stream-availability/usdc-purchase-gated/UsdcPurchaseFields.tsx diff --git a/packages/web/src/components/edit-track/fields/stream-availability/usdc-purchase-gated/UsdcPurchaseGatedRadioField.module.css b/packages/web/src/components/edit/fields/stream-availability/usdc-purchase-gated/UsdcPurchaseGatedRadioField.module.css similarity index 100% rename from packages/web/src/components/edit-track/fields/stream-availability/usdc-purchase-gated/UsdcPurchaseGatedRadioField.module.css rename to packages/web/src/components/edit/fields/stream-availability/usdc-purchase-gated/UsdcPurchaseGatedRadioField.module.css diff --git a/packages/web/src/components/edit-track/fields/stream-availability/usdc-purchase-gated/UsdcPurchaseGatedRadioField.tsx b/packages/web/src/components/edit/fields/stream-availability/usdc-purchase-gated/UsdcPurchaseGatedRadioField.tsx similarity index 100% rename from packages/web/src/components/edit-track/fields/stream-availability/usdc-purchase-gated/UsdcPurchaseGatedRadioField.tsx rename to packages/web/src/components/edit/fields/stream-availability/usdc-purchase-gated/UsdcPurchaseGatedRadioField.tsx diff --git a/packages/web/src/components/edit-track/fields/types.ts b/packages/web/src/components/edit/fields/types.ts similarity index 100% rename from packages/web/src/components/edit-track/fields/types.ts rename to packages/web/src/components/edit/fields/types.ts diff --git a/packages/web/src/components/form-fields/ArtworkField.tsx b/packages/web/src/components/form-fields/ArtworkField.tsx index 9b692ee4bd3..0667df16252 100644 --- a/packages/web/src/components/form-fields/ArtworkField.tsx +++ b/packages/web/src/components/form-fields/ArtworkField.tsx @@ -4,10 +4,10 @@ import { getErrorMessage } from '@audius/common/utils' import { useField, useFormikContext } from 'formik' import { HelperText } from 'components/data-entry/HelperText' +import { TrackEditFormValues } from 'components/edit-track/types' import UploadArtwork, { UploadArtworkProps } from 'components/upload/UploadArtwork' -import { TrackEditFormValues } from 'pages/upload-page/types' import { resizeImage } from 'utils/imageProcessingUtil' type ArtworkFieldProps = Partial & { diff --git a/packages/web/src/components/nav/mobile/TopLevelPage.tsx b/packages/web/src/components/nav/mobile/TopLevelPage.tsx index 25b39a2ff55..a864ce06e50 100644 --- a/packages/web/src/components/nav/mobile/TopLevelPage.tsx +++ b/packages/web/src/components/nav/mobile/TopLevelPage.tsx @@ -4,7 +4,7 @@ import { connect } from 'react-redux' import { Dispatch } from 'redux' import AddToCollectionPage from 'components/add-to-collection/mobile/AddToCollection' -import EditPlaylistPage from 'components/edit-playlist/mobile/EditPlaylistPage' +import EditPlaylistPage from 'components/edit-collection/mobile/EditPlaylistPage' import useScrollLock from 'hooks/useScrollLock' import { AppState } from 'store/types' diff --git a/packages/web/src/pages/modals/Modals.tsx b/packages/web/src/pages/modals/Modals.tsx index 4535bde4dea..11bb3c87331 100644 --- a/packages/web/src/pages/modals/Modals.tsx +++ b/packages/web/src/pages/modals/Modals.tsx @@ -55,7 +55,7 @@ import { AppModal } from './AppModal' const ShareModal = lazy(() => import('components/share-modal')) const EditPlaylistModal = lazy( - () => import('components/edit-playlist/desktop/EditPlaylistModal') + () => import('components/edit-collection/desktop/EditCollectionModal') ) const HCaptchaModal = lazy( () => import('pages/audio-rewards-page/components/modals/HCaptchaModal') diff --git a/packages/web/src/pages/upload-page/forms/EditCollectionFormForUpload.tsx b/packages/web/src/pages/upload-page/forms/EditCollectionFormForUpload.tsx new file mode 100644 index 00000000000..4c549cb63f2 --- /dev/null +++ b/packages/web/src/pages/upload-page/forms/EditCollectionFormForUpload.tsx @@ -0,0 +1,55 @@ +import { useCallback } from 'react' + +import { CollectionValues } from '@audius/common/schemas' +import { UploadType } from '@audius/common/store' +import moment from 'moment' + +import { EditCollectionForm } from '../../../components/edit-collection/desktop/EditCollectionForm' +import { CollectionFormState } from '../types' + +type EditCollectionFormProps = { + formState: CollectionFormState + onContinue: (formState: CollectionFormState) => void +} + +export const EditCollectionFormForUpload = (props: EditCollectionFormProps) => { + const { formState, onContinue } = props + const { tracks, uploadType, metadata } = formState + const isAlbum = uploadType === UploadType.ALBUM + + const initialValues: CollectionValues = { + ...metadata, + is_album: isAlbum, + is_downloadable: false, + artwork: null, + playlist_name: '', + description: '', + release_date: moment().toString(), + is_private: false, + trackDetails: { + genre: null, + mood: null, + tags: '' + }, + tracks: tracks.map((track) => ({ ...track, override: false })) + } + + const handleSubmit = useCallback( + (values: CollectionValues) => { + onContinue({ + uploadType, + tracks: values.tracks, + metadata: values + }) + }, + [onContinue, uploadType] + ) + + return ( + + ) +} diff --git a/packages/web/src/pages/upload-page/forms/EditTrackFormForUpload.tsx b/packages/web/src/pages/upload-page/forms/EditTrackFormForUpload.tsx index f16075fb5f6..311ea707e90 100644 --- a/packages/web/src/pages/upload-page/forms/EditTrackFormForUpload.tsx +++ b/packages/web/src/pages/upload-page/forms/EditTrackFormForUpload.tsx @@ -3,10 +3,11 @@ import { useCallback, useMemo } from 'react' import moment from 'moment' import { EditTrackForm } from 'components/edit-track/EditTrackForm' - // TODO: maybe move this to a shared location -import { defaultHiddenFields } from '../../../components/edit-track/fields/stream-availability/HiddenAvailabilityFields' -import { TrackEditFormValues, TrackFormState } from '../types' +import { TrackEditFormValues } from 'components/edit-track/types' + +import { defaultHiddenFields } from '../../../components/edit/fields/stream-availability/HiddenAvailabilityFields' +import { TrackFormState } from '../types' type EditTrackFormProps = { formState: TrackFormState diff --git a/packages/web/src/pages/upload-page/pages/EditPage.tsx b/packages/web/src/pages/upload-page/pages/EditPage.tsx index 2090931ad25..453543d987f 100644 --- a/packages/web/src/pages/upload-page/pages/EditPage.tsx +++ b/packages/web/src/pages/upload-page/pages/EditPage.tsx @@ -4,7 +4,7 @@ import { UploadType } from '@audius/common/store' import { useUnmount } from 'react-use' import { UploadPreviewContext } from '../../../components/edit-track/utils/uploadPreviewContext' -import { EditCollectionForm } from '../forms/EditCollectionForm' +import { EditCollectionFormForUpload } from '../forms/EditCollectionFormForUpload' import { EditTrackFormForUpload } from '../forms/EditTrackFormForUpload' import { CollectionFormState, TrackFormState, UploadFormState } from '../types' @@ -27,7 +27,10 @@ export const EditPage = (props: EditPageProps) => { case UploadType.ALBUM: case UploadType.PLAYLIST: return ( - + ) } } diff --git a/packages/web/src/pages/upload-page/types.ts b/packages/web/src/pages/upload-page/types.ts index 530e2b98f20..b30841006dd 100644 --- a/packages/web/src/pages/upload-page/types.ts +++ b/packages/web/src/pages/upload-page/types.ts @@ -1,10 +1,5 @@ import { CollectionValues } from '@audius/common/schemas' -import { - UploadType, - TrackMetadataForUpload, - TrackForUpload -} from '@audius/common/store' -import { Nullable } from '@audius/common/utils' +import { UploadType, TrackForUpload } from '@audius/common/store' export type InitialFormState = { uploadType: undefined @@ -28,23 +23,6 @@ export type UploadFormState = | CollectionFormState | InitialFormState -export type SingleTrackEditValues = Omit & { - licenseType: { - allowAttribution: Nullable - commercialUse: Nullable - derivativeWorks: Nullable - } - remix_of: { - tracks: { parent_track_id: number }[] - } | null -} - -export type TrackEditFormValues = { - tracks: TrackForUpload[] - trackMetadatas: SingleTrackEditValues[] - trackMetadatasIndex: number -} - export type CollectionTrackForUpload = TrackForUpload & { override: boolean } From e1d475230663c1274b4416b82883570f58da2622 Mon Sep 17 00:00:00 2001 From: amendelsohn Date: Wed, 29 May 2024 14:15:17 -0700 Subject: [PATCH 3/4] fix relative imports --- packages/web/src/pages/upload-page/UploadPage.tsx | 3 +-- .../pages/upload-page/forms/EditCollectionFormForUpload.tsx | 3 ++- .../web/src/pages/upload-page/forms/EditTrackFormForUpload.tsx | 3 +-- packages/web/src/pages/upload-page/pages/EditPage.tsx | 3 ++- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/web/src/pages/upload-page/UploadPage.tsx b/packages/web/src/pages/upload-page/UploadPage.tsx index 1b595155267..e677bc8e7a8 100644 --- a/packages/web/src/pages/upload-page/UploadPage.tsx +++ b/packages/web/src/pages/upload-page/UploadPage.tsx @@ -8,11 +8,10 @@ import { } from '@audius/common/store' import { useDispatch, useSelector } from 'react-redux' +import { UploadPreviewContextProvider } from 'components/edit-track/utils/uploadPreviewContext' import Header from 'components/header/desktop/Header' import Page from 'components/page/Page' -import { UploadPreviewContextProvider } from '../../components/edit-track/utils/uploadPreviewContext' - import styles from './UploadPage.module.css' import { EditPage } from './pages/EditPage' import { FinishPage } from './pages/FinishPage' diff --git a/packages/web/src/pages/upload-page/forms/EditCollectionFormForUpload.tsx b/packages/web/src/pages/upload-page/forms/EditCollectionFormForUpload.tsx index 4c549cb63f2..4370dd324a8 100644 --- a/packages/web/src/pages/upload-page/forms/EditCollectionFormForUpload.tsx +++ b/packages/web/src/pages/upload-page/forms/EditCollectionFormForUpload.tsx @@ -4,7 +4,8 @@ import { CollectionValues } from '@audius/common/schemas' import { UploadType } from '@audius/common/store' import moment from 'moment' -import { EditCollectionForm } from '../../../components/edit-collection/desktop/EditCollectionForm' +import { EditCollectionForm } from 'components/edit-collection/desktop/EditCollectionForm' + import { CollectionFormState } from '../types' type EditCollectionFormProps = { diff --git a/packages/web/src/pages/upload-page/forms/EditTrackFormForUpload.tsx b/packages/web/src/pages/upload-page/forms/EditTrackFormForUpload.tsx index 311ea707e90..f0e1f672e8a 100644 --- a/packages/web/src/pages/upload-page/forms/EditTrackFormForUpload.tsx +++ b/packages/web/src/pages/upload-page/forms/EditTrackFormForUpload.tsx @@ -2,11 +2,10 @@ import { useCallback, useMemo } from 'react' import moment from 'moment' +import { defaultHiddenFields } from 'components/edit/fields/stream-availability/HiddenAvailabilityFields' import { EditTrackForm } from 'components/edit-track/EditTrackForm' -// TODO: maybe move this to a shared location import { TrackEditFormValues } from 'components/edit-track/types' -import { defaultHiddenFields } from '../../../components/edit/fields/stream-availability/HiddenAvailabilityFields' import { TrackFormState } from '../types' type EditTrackFormProps = { diff --git a/packages/web/src/pages/upload-page/pages/EditPage.tsx b/packages/web/src/pages/upload-page/pages/EditPage.tsx index 453543d987f..820384cfb04 100644 --- a/packages/web/src/pages/upload-page/pages/EditPage.tsx +++ b/packages/web/src/pages/upload-page/pages/EditPage.tsx @@ -3,7 +3,8 @@ import { useContext } from 'react' import { UploadType } from '@audius/common/store' import { useUnmount } from 'react-use' -import { UploadPreviewContext } from '../../../components/edit-track/utils/uploadPreviewContext' +import { UploadPreviewContext } from 'components/edit-track/utils/uploadPreviewContext' + import { EditCollectionFormForUpload } from '../forms/EditCollectionFormForUpload' import { EditTrackFormForUpload } from '../forms/EditTrackFormForUpload' import { CollectionFormState, TrackFormState, UploadFormState } from '../types' From 9b9d0237c2d7f5a69406f57bd2fa45064d516105 Mon Sep 17 00:00:00 2001 From: amendelsohn Date: Wed, 29 May 2024 17:42:34 -0700 Subject: [PATCH 4/4] fix more relative imports --- .../desktop/EditCollectionForm.tsx | 15 +++++++-------- .../components/edit-track/EditTrackForm.tsx | 19 +++++++++---------- .../edit/fields/AccessAndSaleField.tsx | 7 +++---- .../edit/fields/AccessAndSaleMenuFields.tsx | 3 +-- .../edit/fields/CollectionTrackField.tsx | 3 +-- .../edit/fields/MultiTrackSidebar.tsx | 11 +++++------ .../edit/fields/ReleaseDateField.tsx | 5 ++--- .../edit/fields/ReleaseDateFieldLegacy.tsx | 5 ++--- .../RemixSettingsField/RemixSettingsField.tsx | 4 ++-- .../edit/fields/StemsAndDownloadsField.tsx | 3 +-- .../fields/StemsAndDownloadsMenuFields.tsx | 3 +-- .../edit/fields/TrackMetadataFields.tsx | 3 +-- 12 files changed, 35 insertions(+), 46 deletions(-) diff --git a/packages/web/src/components/edit-collection/desktop/EditCollectionForm.tsx b/packages/web/src/components/edit-collection/desktop/EditCollectionForm.tsx index 0ce1645b3a9..b1b0157afd4 100644 --- a/packages/web/src/components/edit-collection/desktop/EditCollectionForm.tsx +++ b/packages/web/src/components/edit-collection/desktop/EditCollectionForm.tsx @@ -9,6 +9,12 @@ import { Flex, Text } from '@audius/harmony' import { Form, Formik } from 'formik' import { toFormikValidationSchema } from 'zod-formik-adapter' +import { AccessAndSaleField } from 'components/edit/fields/AccessAndSaleField' +import { CollectionTrackFieldArray } from 'components/edit/fields/CollectionTrackFieldArray' +import { ReleaseDateFieldLegacy } from 'components/edit/fields/ReleaseDateFieldLegacy' +import { SelectGenreField } from 'components/edit/fields/SelectGenreField' +import { SelectMoodField } from 'components/edit/fields/SelectMoodField' +import { StemsAndDownloadsCollectionField } from 'components/edit/fields/StemsAndDownloadsCollectionsField' import { ArtworkField, TagField, @@ -16,14 +22,7 @@ import { TextField } from 'components/form-fields' import { Tile } from 'components/tile' - -import { AnchoredSubmitRow } from '../../../pages/upload-page/components/AnchoredSubmitRow' -import { AccessAndSaleField } from '../../edit/fields/AccessAndSaleField' -import { CollectionTrackFieldArray } from '../../edit/fields/CollectionTrackFieldArray' -import { ReleaseDateFieldLegacy } from '../../edit/fields/ReleaseDateFieldLegacy' -import { SelectGenreField } from '../../edit/fields/SelectGenreField' -import { SelectMoodField } from '../../edit/fields/SelectMoodField' -import { StemsAndDownloadsCollectionField } from '../../edit/fields/StemsAndDownloadsCollectionsField' +import { AnchoredSubmitRow } from 'pages/upload-page/components/AnchoredSubmitRow' import styles from './EditCollectionForm.module.css' diff --git a/packages/web/src/components/edit-track/EditTrackForm.tsx b/packages/web/src/components/edit-track/EditTrackForm.tsx index 922a9bf8cdd..cf1af54dd76 100644 --- a/packages/web/src/components/edit-track/EditTrackForm.tsx +++ b/packages/web/src/components/edit-track/EditTrackForm.tsx @@ -15,20 +15,19 @@ import { z } from 'zod' import { toFormikValidationSchema } from 'zod-formik-adapter' import { MenuFormCallbackStatus } from 'components/data-entry/ContextualMenu' +import { AccessAndSaleField } from 'components/edit/fields/AccessAndSaleField' +import { AttributionField } from 'components/edit/fields/AttributionField' +import { MultiTrackSidebar } from 'components/edit/fields/MultiTrackSidebar' +import { ReleaseDateField } from 'components/edit/fields/ReleaseDateField' +import { ReleaseDateFieldLegacy } from 'components/edit/fields/ReleaseDateFieldLegacy' +import { RemixSettingsField } from 'components/edit/fields/RemixSettingsField' +import { StemsAndDownloadsField } from 'components/edit/fields/StemsAndDownloadsField' +import { TrackMetadataFields } from 'components/edit/fields/TrackMetadataFields' import layoutStyles from 'components/layout/layout.module.css' import { NavigationPrompt } from 'components/navigation-prompt/NavigationPrompt' import { useFlag } from 'hooks/useRemoteConfig' import { UploadFormScrollContext } from 'pages/upload-page/UploadPage' - -import { AnchoredSubmitRow } from '../../pages/upload-page/components/AnchoredSubmitRow' -import { AccessAndSaleField } from '../edit/fields/AccessAndSaleField' -import { AttributionField } from '../edit/fields/AttributionField' -import { MultiTrackSidebar } from '../edit/fields/MultiTrackSidebar' -import { ReleaseDateField } from '../edit/fields/ReleaseDateField' -import { ReleaseDateFieldLegacy } from '../edit/fields/ReleaseDateFieldLegacy' -import { RemixSettingsField } from '../edit/fields/RemixSettingsField' -import { StemsAndDownloadsField } from '../edit/fields/StemsAndDownloadsField' -import { TrackMetadataFields } from '../edit/fields/TrackMetadataFields' +import { AnchoredSubmitRow } from 'pages/upload-page/components/AnchoredSubmitRow' import styles from './EditTrackForm.module.css' import { PreviewButton } from './components/PreviewButton' diff --git a/packages/web/src/components/edit/fields/AccessAndSaleField.tsx b/packages/web/src/components/edit/fields/AccessAndSaleField.tsx index b19d796116c..ffe81535a05 100644 --- a/packages/web/src/components/edit/fields/AccessAndSaleField.tsx +++ b/packages/web/src/components/edit/fields/AccessAndSaleField.tsx @@ -38,13 +38,12 @@ import { SelectedValueProps } from 'components/data-entry/ContextualMenu' import DynamicImage from 'components/dynamic-image/DynamicImage' -import { defaultFieldVisibility } from 'pages/track-page/utils' - -import { useIndexedField, useTrackField } from '../../edit-track/hooks' +import { useIndexedField, useTrackField } from 'components/edit-track/hooks' import { SingleTrackEditValues, TrackEditFormValues -} from '../../edit-track/types' +} from 'components/edit-track/types' +import { defaultFieldVisibility } from 'pages/track-page/utils' import styles from './AccessAndSaleField.module.css' import { AccessAndSaleMenuFields } from './AccessAndSaleMenuFields' diff --git a/packages/web/src/components/edit/fields/AccessAndSaleMenuFields.tsx b/packages/web/src/components/edit/fields/AccessAndSaleMenuFields.tsx index f3493d9209a..4b6fd822a6a 100644 --- a/packages/web/src/components/edit/fields/AccessAndSaleMenuFields.tsx +++ b/packages/web/src/components/edit/fields/AccessAndSaleMenuFields.tsx @@ -16,13 +16,12 @@ import { import cn from 'classnames' import { useField } from 'formik' +import { SingleTrackEditValues } from 'components/edit-track/types' import layoutStyles from 'components/layout/layout.module.css' import { ModalRadioItem } from 'components/modal-radio/ModalRadioItem' import { useFlag } from 'hooks/useRemoteConfig' import { pluralize } from 'utils/stringUtils' -import { SingleTrackEditValues } from '../../edit-track/types' - import styles from './AccessAndSaleField.module.css' import { HiddenAvailabilityFields } from './stream-availability/HiddenAvailabilityFields' import { SpecialAccessFields } from './stream-availability/SpecialAccessFields' diff --git a/packages/web/src/components/edit/fields/CollectionTrackField.tsx b/packages/web/src/components/edit/fields/CollectionTrackField.tsx index ed71e8c4164..6ca1b413dca 100644 --- a/packages/web/src/components/edit/fields/CollectionTrackField.tsx +++ b/packages/web/src/components/edit/fields/CollectionTrackField.tsx @@ -3,11 +3,10 @@ import { useCallback, useContext, useEffect } from 'react' import { IconDrag, IconTrash, Text, IconButton } from '@audius/harmony' import { useField } from 'formik' +import { UploadPreviewContext } from 'components/edit-track/utils/uploadPreviewContext' import { Tile } from 'components/tile' import { CollectionTrackForUpload } from 'pages/upload-page/types' -import { UploadPreviewContext } from '../../edit-track/utils/uploadPreviewContext' - import styles from './CollectionTrackField.module.css' import { TrackNameField } from './TrackNameField' diff --git a/packages/web/src/components/edit/fields/MultiTrackSidebar.tsx b/packages/web/src/components/edit/fields/MultiTrackSidebar.tsx index e371014ad30..9fa56a010e9 100644 --- a/packages/web/src/components/edit/fields/MultiTrackSidebar.tsx +++ b/packages/web/src/components/edit/fields/MultiTrackSidebar.tsx @@ -14,15 +14,14 @@ import { useField, useFormikContext } from 'formik' import { isEmpty } from 'lodash' import DynamicImage from 'components/dynamic-image/DynamicImage' -import layoutStyles from 'components/layout/layout.module.css' - -import { UploadFormScrollContext } from '../../../pages/upload-page/UploadPage' -import { useIndexedField } from '../../edit-track/hooks' +import { useIndexedField } from 'components/edit-track/hooks' import { SingleTrackEditValues, TrackEditFormValues -} from '../../edit-track/types' -import { UploadPreviewContext } from '../../edit-track/utils/uploadPreviewContext' +} from 'components/edit-track/types' +import { UploadPreviewContext } from 'components/edit-track/utils/uploadPreviewContext' +import layoutStyles from 'components/layout/layout.module.css' +import { UploadFormScrollContext } from 'pages/upload-page/UploadPage' import styles from './MultiTrackSidebar.module.css' diff --git a/packages/web/src/components/edit/fields/ReleaseDateField.tsx b/packages/web/src/components/edit/fields/ReleaseDateField.tsx index 2756eb5a7ed..70069e22528 100644 --- a/packages/web/src/components/edit/fields/ReleaseDateField.tsx +++ b/packages/web/src/components/edit/fields/ReleaseDateField.tsx @@ -20,15 +20,14 @@ import { ContextualMenu, SelectedValue } from 'components/data-entry/ContextualMenu' +import { useTrackField } from 'components/edit-track/hooks' +import { SingleTrackEditValues } from 'components/edit-track/types' import { DropdownField } from 'components/form-fields' import { HarmonyTextField } from 'components/form-fields/HarmonyTextField' import layoutStyles from 'components/layout/layout.module.css' import { ModalRadioItem } from 'components/modal-radio/ModalRadioItem' import { formatCalendarTime } from 'utils/dateUtils' -import { useTrackField } from '../../edit-track/hooks' -import { SingleTrackEditValues } from '../../edit-track/types' - import { DatePickerField } from './DatePickerField' import styles from './ReleaseDateField.module.css' import { IS_UNLISTED } from './types' diff --git a/packages/web/src/components/edit/fields/ReleaseDateFieldLegacy.tsx b/packages/web/src/components/edit/fields/ReleaseDateFieldLegacy.tsx index 224b3b3e82f..7ad28f49662 100644 --- a/packages/web/src/components/edit/fields/ReleaseDateFieldLegacy.tsx +++ b/packages/web/src/components/edit/fields/ReleaseDateFieldLegacy.tsx @@ -8,9 +8,8 @@ import { ContextualMenu, SelectedValue } from 'components/data-entry/ContextualMenu' - -import { useTrackField } from '../../edit-track/hooks' -import { SingleTrackEditValues } from '../../edit-track/types' +import { useTrackField } from 'components/edit-track/hooks' +import { SingleTrackEditValues } from 'components/edit-track/types' import { DatePickerField } from './DatePickerField' import styles from './ReleaseDateFieldLegacy.module.css' diff --git a/packages/web/src/components/edit/fields/RemixSettingsField/RemixSettingsField.tsx b/packages/web/src/components/edit/fields/RemixSettingsField/RemixSettingsField.tsx index 5b7e9df0688..4db56e55624 100644 --- a/packages/web/src/components/edit/fields/RemixSettingsField/RemixSettingsField.tsx +++ b/packages/web/src/components/edit/fields/RemixSettingsField/RemixSettingsField.tsx @@ -16,10 +16,10 @@ import { ContextualMenu, SelectedValue } from 'components/data-entry/ContextualMenu' +import { useTrackField } from 'components/edit-track/hooks' +import { SingleTrackEditValues } from 'components/edit-track/types' import { fullTrackPage } from 'utils/route' -import { useTrackField } from '../../../edit-track/hooks' -import { SingleTrackEditValues } from '../../../edit-track/types' import { IS_STREAM_GATED, STREAM_CONDITIONS } from '../types' import styles from './RemixSettingsField.module.css' diff --git a/packages/web/src/components/edit/fields/StemsAndDownloadsField.tsx b/packages/web/src/components/edit/fields/StemsAndDownloadsField.tsx index b3789d6eb6a..92f664b38d4 100644 --- a/packages/web/src/components/edit/fields/StemsAndDownloadsField.tsx +++ b/packages/web/src/components/edit/fields/StemsAndDownloadsField.tsx @@ -26,8 +26,7 @@ import { SelectedValue, SelectedValues } from 'components/data-entry/ContextualMenu' - -import { useTrackField } from '../../edit-track/hooks' +import { useTrackField } from 'components/edit-track/hooks' import { StemsAndDownloadsMenuFields, diff --git a/packages/web/src/components/edit/fields/StemsAndDownloadsMenuFields.tsx b/packages/web/src/components/edit/fields/StemsAndDownloadsMenuFields.tsx index 0df741e179b..68bf1d06cb0 100644 --- a/packages/web/src/components/edit/fields/StemsAndDownloadsMenuFields.tsx +++ b/packages/web/src/components/edit/fields/StemsAndDownloadsMenuFields.tsx @@ -14,10 +14,9 @@ import { usePrevious } from 'react-use' import { z } from 'zod' import { Divider } from 'components/divider' +import { processFiles } from 'pages/upload-page/store/utils/processFiles' import { stemDropdownRows } from 'utils/stems' -import { processFiles } from '../../../pages/upload-page/store/utils/processFiles' - import { USDCPurchaseRemoteConfig } from './AccessAndSaleField' import { StemFilesView } from './StemFilesView' import styles from './StemsAndDownloadsField.module.css' diff --git a/packages/web/src/components/edit/fields/TrackMetadataFields.tsx b/packages/web/src/components/edit/fields/TrackMetadataFields.tsx index 2d1508933e0..bb849be54a4 100644 --- a/packages/web/src/components/edit/fields/TrackMetadataFields.tsx +++ b/packages/web/src/components/edit/fields/TrackMetadataFields.tsx @@ -1,11 +1,10 @@ import cn from 'classnames' import { useField } from 'formik' +import { getTrackFieldName } from 'components/edit-track/hooks' import { ArtworkField, TagField, TextAreaField } from 'components/form-fields' import layoutStyles from 'components/layout/layout.module.css' -import { getTrackFieldName } from '../../edit-track/hooks' - import { SelectGenreField } from './SelectGenreField' import { SelectMoodField } from './SelectMoodField' import styles from './TrackMetadataFields.module.css'