Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
import { useGetPlaylistById, useGetCurrentUserId } from '@audius/common/api'
import { useFeatureFlag } from '@audius/common/hooks'
import type { ID } from '@audius/common/models'
import { FeatureFlags } from '@audius/common/services'
import { cacheCollectionsSelectors } from '@audius/common/store'
import type { CommonState } from '@audius/common/store'
import { useSelector } from 'react-redux'
Expand DownExpand Up@@ -79,6 +81,10 @@ export const DetailsTileActionButtons = ({
onPressSave,
onPressShare
}: DetailsTileActionButtonsProps) => {
const { isEnabled: isHiddenPaidScheduledEnabled } = useFeatureFlag(
FeatureFlags.HIDDEN_PAID_SCHEDULED
)

const styles = useStyles()
const isCollectionEmpty = useSelector((state: CommonState) =>
getIsCollectionEmpty(state, { id: collectionId })
Expand DownExpand Up@@ -155,7 +161,10 @@ export const DetailsTileActionButtons = ({
<IconButton
color='subdued'
icon={IconRocket}
disabled={isCollectionEmpty || collectionHasHiddenTracks}
disabled={
isCollectionEmpty ||
(collectionHasHiddenTracks && !isHiddenPaidScheduledEnabled)
}
disabledHint={
collectionHasHiddenTracks
? messages.publishButtonHiddenDisabledContent
Expand Down
19 changes: 18 additions & 1 deletion packages/web/src/common/store/cache/collections/commonSagas.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -30,7 +30,8 @@ import {
confirmerActions,
confirmTransaction,
SubscriptionInfo,
Entry
Entry,
trackPageActions
} from '@audius/common/store'
import {
squashNewLines,
Expand DownExpand Up@@ -167,6 +168,7 @@ function* confirmEditPlaylist(
formFields: Collection
) {
const audiusBackendInstance = yield* getContext('audiusBackendInstance')
const playlistBeforeEdit = yield* select(getCollection, { id: playlistId })
yield* put(
confirmerActions.requestConfirmation(
makeKindId(Kind.COLLECTIONS, playlistId),
Expand DownExpand Up@@ -209,6 +211,14 @@ function* confirmEditPlaylist(
}
])
)

if (playlistBeforeEdit?.is_private && !confirmedPlaylist.is_private) {
for (const track of confirmedPlaylist.tracks ?? []) {
if (track.is_unlisted) {
yield* put(trackPageActions.makeTrackPublic(track.track_id))
}
}
}
},
function* ({ error, timeout, message }) {
yield* put(
Expand DownExpand Up@@ -525,6 +535,13 @@ function* confirmPublishPlaylist(
}
])
)

for (const track of confirmedPlaylist.tracks ?? []) {
if (track.is_unlisted) {
yield* put(trackPageActions.makeTrackPublic(track.track_id))
}
}

if (dismissToastKey) {
yield* put(manualClearToast({ key: dismissToastKey }))
}
Expand Down
1 change: 1 addition & 0 deletions packages/web/src/common/store/pages/track/sagas.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -232,6 +232,7 @@ function* watchTrackPageMakePublic() {
...track,
is_unlisted: false,
release_date: moment().toString(),
is_scheduled_release: false,
field_visibility: {
genre: true,
mood: true,
Expand Down
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
import { Collection } from '@audius/common/models'
import { FeatureFlags } from '@audius/common/src/services'
import {
cacheCollectionsSelectors,
collectionPageSelectors,
Expand All@@ -9,6 +10,7 @@ import { useSelector } from 'react-redux'
import { useToggle } from 'react-use'

import { Tooltip } from 'components/tooltip'
import { useFlag } from 'hooks/useRemoteConfig'

import { PublishConfirmationModal } from './PublishConfirmationModal'

Expand DownExpand Up@@ -38,10 +40,17 @@ export const PublishButton = (props: PublishButtonProps) => {
getCollectionHasHiddenTracks(state, { id: collectionId })
)

const { isEnabled: isHiddenPaidScheduledEnabled } = useFlag(
FeatureFlags.HIDDEN_PAID_SCHEDULED
)

const [isConfirming, toggleIsConfirming] = useToggle(false)

const isDisabled =
!track_count || track_count === 0 || hasHiddenTracks || !cover_art_sizes
!track_count ||
track_count === 0 ||
(hasHiddenTracks && !isHiddenPaidScheduledEnabled) ||
!cover_art_sizes

const publishButtonElement = (
<IconButton
Expand Down
Original file line numberDiff line numberDiff line change
Expand Up@@ -27,7 +27,7 @@ const { publishPlaylist } = cacheCollectionsActions
const messages = {
title: 'Make Public',
description: (collectionType: 'album' | 'playlist') =>
`Are you sure you want to make this ${collectionType} public? It will be shared to your feed and your subscribed followers will be notified.`,
`Are you sure you want to make this ${collectionType} public? Any hidden tracks in your ${collectionType} will become public and your followers will be notified.`,
cancel: 'Cancel',
publish: 'Make Public'
}
Expand Down