Skip to content

Commit

Permalink
feat(core): corel publish 2 action - test (#8015)
Browse files Browse the repository at this point in the history
  • Loading branch information
pedrobonamin authored Dec 11, 2024
1 parent 089c5eb commit f991463
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import {getReleaseIdFromReleaseDocumentId, type ReleaseDocument} from '../index'
import {type EditableReleaseDocument} from './types'

export interface ReleaseOperationsStore {
publishRelease: (releaseId: string) => Promise<void>
publishRelease: (releaseId: string, useUnstableAction?: boolean) => Promise<void>
schedule: (releaseId: string, date: Date) => Promise<void>
//todo: reschedule: (releaseId: string, newDate: Date) => Promise<void>
unschedule: (releaseId: string) => Promise<void>
Expand Down Expand Up @@ -60,10 +60,12 @@ export function createReleaseOperationsStore(options: {
})
}

const handlePublishRelease = (releaseId: string) =>
const handlePublishRelease = (releaseId: string, useUnstableAction?: boolean) =>
requestAction(client, [
{
actionType: 'sanity.action.release.publish',
actionType: useUnstableAction
? 'sanity.action.release.publish2'
: 'sanity.action.release.publish',
releaseId: getReleaseIdFromReleaseDocumentId(releaseId),
},
])
Expand Down Expand Up @@ -179,7 +181,7 @@ interface ScheduleApiAction {
}

interface PublishApiAction {
actionType: 'sanity.action.release.publish'
actionType: 'sanity.action.release.publish' | 'sanity.action.release.publish2'
releaseId: string
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import {useRouter} from 'sanity/router'
import {Button, Dialog} from '../../../../../ui-components'
import {ToneIcon} from '../../../../../ui-components/toneIcon/ToneIcon'
import {Translate, useTranslation} from '../../../../i18n'
import {supportsLocalStorage} from '../../../../util/supportsLocalStorage'
import {PublishedRelease} from '../../../__telemetry__/releases.telemetry'
import {usePerspective} from '../../../hooks/usePerspective'
import {releasesLocaleNamespace} from '../../../i18n'
Expand All @@ -31,9 +32,16 @@ export const ReleasePublishAllButton = ({
const {t} = useTranslation(releasesLocaleNamespace)
const perspective = usePerspective()
const telemetry = useTelemetry()
const [publishBundleStatus, setPublishBundleStatus] = useState<'idle' | 'confirm' | 'publishing'>(
'idle',
)
const publish2 = useMemo(() => {
if (supportsLocalStorage) {
return localStorage.getItem('publish2') === 'true'
}
return false
}, [])

const [publishBundleStatus, setPublishBundleStatus] = useState<
'idle' | 'confirm' | 'confirm-2' | 'publishing'
>('idle')

const isValidatingDocuments = documents.some(({validation}) => validation.isValidating)
const hasDocumentValidationErrors = documents.some(({validation}) => validation.hasError)
Expand All @@ -44,8 +52,9 @@ export const ReleasePublishAllButton = ({
if (!release) return

try {
const useUnstableAction = publishBundleStatus === 'confirm-2'
setPublishBundleStatus('publishing')
await publishRelease(release._id)
await publishRelease(release._id, useUnstableAction)
telemetry.log(PublishedRelease)
toast.push({
closable: true,
Expand Down Expand Up @@ -85,7 +94,7 @@ export const ReleasePublishAllButton = ({
} finally {
setPublishBundleStatus('idle')
}
}, [release, publishRelease, telemetry, toast, t, router, perspective])
}, [release, publishBundleStatus, publishRelease, telemetry, toast, t, router, perspective])

const confirmPublishDialog = useMemo(() => {
if (publishBundleStatus === 'idle') return null
Expand Down Expand Up @@ -150,6 +159,23 @@ export const ReleasePublishAllButton = ({

return (
<>
{publish2 && (
<Button
tooltipProps={{
disabled: !isPublishButtonDisabled,
content: publishTooltipContent,
placement: 'bottom',
}}
icon={PublishIcon}
disabled={isPublishButtonDisabled || publishBundleStatus === 'publishing'}
// eslint-disable-next-line @sanity/i18n/no-attribute-string-literals
text={'Unstable Publish'}
onClick={() => setPublishBundleStatus('confirm-2')}
loading={publishBundleStatus === 'publishing'}
data-testid="publish-all-button"
tone="suggest"
/>
)}
<Button
tooltipProps={{
disabled: !isPublishButtonDisabled,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -242,6 +242,7 @@ describe('after releases have loaded', () => {

expect(useReleaseOperationsMockReturn.publishRelease).toHaveBeenCalledWith(
activeASAPRelease._id,
false,
)
})
})
Expand Down

0 comments on commit f991463

Please sign in to comment.