sanity-plugin-mux-input 1.1.4-main.1 → 1.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -206,10 +206,9 @@ var _default = (0, _formBuilder.withDocument)(class MuxVideoInput extends _react
|
|
|
206
206
|
var onChange = this.props.onChange;
|
|
207
207
|
var _id = result._id;
|
|
208
208
|
onChange(_patchEvent.default.from([(0, _patchEvent.setIfMissing)({
|
|
209
|
-
asset: {
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
}, []), (0, _patchEvent.set)({
|
|
209
|
+
asset: {}
|
|
210
|
+
}), (0, _patchEvent.set)({
|
|
211
|
+
_type: 'reference',
|
|
213
212
|
_ref: _id
|
|
214
213
|
}, ['asset'])]));
|
|
215
214
|
this.setState({
|
|
@@ -397,10 +396,9 @@ var _default = (0, _formBuilder.withDocument)(class MuxVideoInput extends _react
|
|
|
397
396
|
_defineProperty(this, "handleSelectAsset", asset => {
|
|
398
397
|
var onChange = this.props.onChange;
|
|
399
398
|
onChange(_patchEvent.default.from([(0, _patchEvent.setIfMissing)({
|
|
400
|
-
asset: {
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
}, []), (0, _patchEvent.set)({
|
|
399
|
+
asset: {}
|
|
400
|
+
}), (0, _patchEvent.set)({
|
|
401
|
+
_type: 'reference',
|
|
404
402
|
_ref: asset._id
|
|
405
403
|
}, ['asset'])]));
|
|
406
404
|
this.setState({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.js","names":["NOOP","cachedSecrets","token","secretKey","enableSignedUrls","signingKeyId","signingKeyPrivate","validateSecrets","secrets","getSecrets","Promise","resolve","isInitialSetup","needsSetup","fetchSecrets","then","exists","withDocument","MuxVideoInput","Component","constructor","props","assetDocument","confirmRemove","deleteOnMuxChecked","deleteAssetDocumentChecked","error","hasFocus","isLoading","isSigned","showSetup","showBrowser","videoReadyToPlay","thumbLoading","handleFocus","setState","state","pollInterval","setInterval","getAsset","assetId","response","data","client","patch","_id","set","status","commit","returnDocuments","catch","event","prevState","showStetup","result","onChange","PatchEvent","from","setIfMissing","asset","_ref","document","setupAssetListener","preventDefault","stopPropagation","unsetAsset","reject","unset","delete","deleteAsset","videoPlayer","current","currentTime","getVideoElement","options","time","thumbTime","width","height","fitMode","thumb","getPosterSrc","playbackId","newThumb","value","setupButton","React","createRef","video","removeVideoButton","componentDidMount","componentWillUnmount","subscription","unsubscribe","clearInterval","observePaths","pipe","tap","handleRemoveVideo","Error","errors","messages","join","static_renditions","pollMux","config","mp4_support","playback_ids","policy","of","subscribe","renderSetup","handleCancelSaveSetup","handleSaveSetup","renderSetupButton","styles","setupButtonContainer","handleSetupButtonClicked","SetupIcon","renderSetupNotice","backgroundColor","borderRadius","renderAsset","isSignedAlert","handleVideoReadyToPlay","renderVideoButtons","readOnly","handleBrowseButton","handleOpenThumb","handleRemoveVideoButtonClicked","renderBrowser","handleCloseBrowser","handleSelectAsset","renderError","handleErrorClose","message","render","type","level","markers","cssAspectRatio","aspect_ratio","split","studioTheme","position","title","description","formField","blur","focus","handleOnUploadComplete","handleCloseThumbPreview","maxWidth","display","aspectRatio","handleSetThumbButton","handleCancelRemove","handleDeleteOnMuxCheckBoxClicked","margin","handleDeleteAssetDocumentCheckBoxClicked"],"sources":["../../src/components/Input.js"],"sourcesContent":["import {\n Box,\n Button,\n Card,\n Checkbox,\n Dialog,\n Flex,\n Grid,\n Inline,\n Stack,\n studioTheme,\n Text,\n ThemeProvider,\n} from '@sanity/ui'\nimport SetupIcon from 'part:@sanity/base/plugin-icon'\nimport {observePaths} from 'part:@sanity/base/preview'\nimport DialogContent from 'part:@sanity/components/dialogs/content'\nimport FullscreenDialog from 'part:@sanity/components/dialogs/fullscreen'\nimport FormField from 'part:@sanity/components/formfields/default'\nimport Spinner from 'part:@sanity/components/loading/spinner'\nimport {withDocument} from 'part:@sanity/form-builder'\nimport PatchEvent, {set, setIfMissing, unset} from 'part:@sanity/form-builder/patch-event'\nimport React, {Component} from 'react'\nimport {of} from 'rxjs'\nimport {tap} from 'rxjs/operators'\nimport {deleteAsset, getAsset} from '../actions/assets'\nimport {fetchSecrets} from '../actions/secrets'\nimport client from '../clients/SanityClient'\nimport getPosterSrc from '../util/getPosterSrc'\nimport styles from './Input.css'\nimport MuxLogo from './MuxLogo'\nimport SelectAsset from './SelectAsset'\nimport Setup from './Setup'\nimport Uploader from './Uploader'\nimport Video from './Video'\nimport config from '../config'\n\nconst NOOP = () => {\n /* intentional noop */\n}\n\nconst cachedSecrets = {\n token: null,\n secretKey: null,\n enableSignedUrls: false,\n signingKeyId: null,\n signingKeyPrivate: null,\n}\n\nfunction validateSecrets(secrets) {\n if (!secrets.token || !secrets.secretKey) return false\n\n return true\n}\n\nfunction getSecrets() {\n if (cachedSecrets.token) {\n return Promise.resolve({\n isInitialSetup: true,\n needsSetup: false,\n secrets: cachedSecrets,\n })\n }\n return fetchSecrets().then(({secrets, exists}) => {\n cachedSecrets.token = secrets.token\n cachedSecrets.secretKey = secrets.secretKey\n cachedSecrets.enableSignedUrls = secrets.enableSignedUrls\n cachedSecrets.signingKeyId = secrets.signingKeyId\n cachedSecrets.signingKeyPrivate = secrets.signingKeyPrivate\n\n return {\n isInitialSetup: !exists,\n needsSetup: !validateSecrets(cachedSecrets),\n secrets: cachedSecrets,\n }\n })\n}\n\nexport default withDocument(\n class MuxVideoInput extends Component {\n state = {\n assetDocument: null,\n confirmRemove: false,\n deleteOnMuxChecked: false,\n deleteAssetDocumentChecked: true,\n error: null,\n hasFocus: false,\n isInitialSetup: true,\n isLoading: 'secrets',\n needsSetup: true,\n secrets: null,\n isSigned: false,\n showSetup: false,\n showBrowser: false,\n videoReadyToPlay: false,\n thumbLoading: false,\n }\n\n constructor(props) {\n super(props)\n getSecrets()\n .then(({secrets, isInitialSetup, needsSetup}) => {\n this.setState({\n secrets,\n isInitialSetup,\n needsSetup,\n isLoading: props.value?.asset, // If there is an asset continue loading\n })\n })\n .catch((error) => this.setState({error}))\n\n this.setupButton = React.createRef()\n this.pollInterval = null\n this.video = React.createRef()\n this.removeVideoButton = React.createRef()\n this.videoPlayer = React.createRef()\n }\n\n componentDidMount() {\n this.setupAssetListener()\n }\n\n componentWillUnmount() {\n if (this.subscription) {\n this.subscription.unsubscribe()\n }\n if (this.pollInterval) {\n clearInterval(this.pollInterval)\n this.pollInterval = null\n }\n }\n\n focus = () => {\n this.handleFocus()\n }\n\n handleFocus = () => {\n this.setState({hasFocus: true})\n }\n\n handleBlur = () => {\n this.setState({hasFocus: false})\n }\n\n getAsset() {\n const {value} = this.props\n return value ? value.asset : null\n }\n\n setupAssetListener() {\n if (this.subscription) {\n this.subscription.unsubscribe()\n }\n this.setState({videoReadyToPlay: false})\n const asset = this.getAsset()\n if (!asset) {\n return\n }\n this.subscription = observePaths(asset, [\n 'thumbTime',\n 'data',\n 'assetId',\n 'playbackId',\n 'status',\n ])\n .pipe(\n tap((assetDocument) => {\n this.setState({assetDocument})\n if (assetDocument && assetDocument.status === 'errored') {\n clearInterval(this.pollInterval)\n this.pollInterval = null\n // eslint-disable-next-line no-warning-comments\n // todo: use client.observable\n return this.handleRemoveVideo().then(() => {\n this.setState({\n isLoading: false,\n error: new Error(assetDocument.data.errors.messages.join(' ')),\n })\n })\n }\n // Poll MUX if it's preparing the main document or its own static renditions\n if (\n assetDocument?.status === 'preparing' ||\n assetDocument?.data?.static_renditions?.status === 'preparing'\n ) {\n this.pollMux()\n }\n // If MP4 support is enabled: MUX will prepare static_renditions only _after_ an asset\n // has been successfully uploaded.\n // A _ready_ asset doesn't mean static mp4s are generated and ready for use!\n // In these cases, wait for `static_renditions.status === 'ready'` before clearing the poll interval.\n if (assetDocument && assetDocument.status === 'ready') {\n switch (config.mp4_support) {\n case 'standard':\n if (assetDocument?.data?.static_renditions?.status === 'ready') {\n clearInterval(this.pollInterval)\n this.pollInterval = null\n }\n break\n case 'none':\n default:\n clearInterval(this.pollInterval)\n this.pollInterval = null\n break\n }\n }\n\n // eslint-disable-next-line camelcase\n const isSigned = assetDocument?.data?.playback_ids[0]?.policy === 'signed'\n this.setState({assetDocument, isSigned, isLoading: false})\n\n return of(assetDocument)\n })\n )\n .subscribe()\n }\n\n pollMux = () => {\n const assetDocument = this.state.assetDocument\n if (!assetDocument) {\n return\n }\n if (this.pollInterval) {\n return\n }\n this.pollInterval = setInterval(() => {\n getAsset(assetDocument.assetId)\n .then((response) => {\n const props = response.data\n\n client\n .patch(assetDocument._id)\n .set({\n status: props.status,\n data: props,\n })\n .commit({returnDocuments: false})\n })\n .catch((error) => {\n this.setState({error})\n })\n }, 2000)\n }\n\n handleSetupButtonClicked = (event) => {\n this.setState((prevState) => ({showSetup: !prevState.showStetup}))\n }\n\n handleSaveSetup = ({token, secretKey, enableSignedUrls, signingKeyId, signingKeyPrivate}) => {\n cachedSecrets.token = token\n cachedSecrets.secretKey = secretKey\n cachedSecrets.enableSignedUrls = enableSignedUrls\n cachedSecrets.signingKeyId = signingKeyId\n cachedSecrets.signingKeyPrivate = signingKeyPrivate\n\n this.setState({\n showSetup: false,\n secrets: cachedSecrets,\n needsSetup: !validateSecrets(cachedSecrets),\n })\n }\n\n handleCancelSaveSetup = () => {\n this.setState({showSetup: false})\n }\n\n handleOnUploadComplete = (result) => {\n const {onChange} = this.props\n const {_id} = result\n onChange(\n PatchEvent.from([setIfMissing({asset: {_ref: _id}}, []), set({_ref: _id}, ['asset'])])\n )\n this.setState({assetDocument: result.document}, () => {\n this.setupAssetListener()\n })\n }\n\n handleRemoveVideoButtonClicked = (event) => {\n event.preventDefault()\n event.stopPropagation()\n this.setState({confirmRemove: true})\n }\n\n handleRemoveVideo = () => {\n const {assetDocument} = this.state\n this.setState({isLoading: true})\n const unsetAsset = () => {\n return new Promise((resolve, reject) => {\n this.setState(\n {\n assetDocument: null,\n confirmRemove: false,\n isLoading: false,\n },\n () => {\n if (this.state.deleteOnMuxChecked || this.state.deleteAssetDocumentChecked) {\n return client\n .patch(this.props.document._id)\n .unset(['video'])\n .commit({returnDocuments: false})\n .then(() => {\n if (!assetDocument) {\n return resolve()\n }\n return client\n .delete(assetDocument._id)\n .then(() => {\n resolve()\n })\n .catch((error) => {\n reject(error)\n })\n })\n }\n return this.props.onChange(PatchEvent.from(unset()))\n }\n )\n })\n }\n return unsetAsset()\n .then(() => {\n if (this.state.deleteOnMuxChecked) {\n return deleteAsset(assetDocument.assetId).catch((error) => {\n this.setState({error})\n })\n }\n return true\n })\n .catch((error) => {\n this.setState({error})\n })\n }\n\n handleCancelRemove = (event) => {\n this.setState({\n confirmRemove: false,\n deleteOnMuxChecked: true,\n deleteAssetDocumentChecked: true,\n })\n }\n\n handleDeleteOnMuxCheckBoxClicked = (event) => {\n this.setState((prevState) => ({\n deleteOnMuxChecked: !prevState.deleteOnMuxChecked,\n }))\n }\n\n handleDeleteAssetDocumentCheckBoxClicked = (event) => {\n this.setState((prevState) => ({\n deleteAssetDocumentChecked: !prevState.deleteAssetDocumentChecked,\n }))\n }\n\n handleOpenThumb = (event) => {\n if (!this.videoPlayer.current) {\n return\n }\n const {assetDocument, isSigned} = this.state\n const currentTime = this.videoPlayer.current.getVideoElement().currentTime\n const options = {\n time: assetDocument.thumbTime,\n width: 320,\n height: 320,\n fitMode: 'crop',\n isSigned,\n signingKeyId: cachedSecrets.signingKeyId,\n signingKeyPrivate: cachedSecrets.signingKeyPrivate,\n }\n\n const thumb = getPosterSrc(assetDocument.playbackId, options)\n const newThumb = getPosterSrc(assetDocument.playbackId, {...options, time: currentTime})\n\n this.setState({thumb, newThumb})\n }\n\n handleSetThumbButton = (event) => {\n if (!this.videoPlayer.current) {\n return\n }\n\n this.setState({thumbLoading: true})\n const {assetDocument, isSigned} = this.state\n const currentTime = this.videoPlayer.current.getVideoElement().currentTime\n client\n .patch(assetDocument._id)\n .set({\n thumbTime: currentTime,\n })\n .commit({returnDocuments: false})\n .then((response) => {\n const options = {\n time: currentTime,\n width: 320,\n height: 320,\n fitMode: 'crop',\n isSigned,\n signingKeyId: cachedSecrets.signingKeyId,\n signingKeyPrivate: cachedSecrets.signingKeyPrivate,\n }\n\n const thumb = getPosterSrc(assetDocument.playbackId, options)\n\n this.setState({thumb, thumbLoading: false})\n })\n .catch((error) => {\n this.setState({error, thumbLoading: false})\n })\n }\n\n handleErrorClose = (event) => {\n if (event) {\n event.preventDefault()\n }\n\n this.setState({\n error: null,\n })\n }\n\n handleCloseThumbPreview = (event) => {\n this.setState({thumb: null})\n }\n\n handleBrowseButton = (event) => {\n this.setState({showBrowser: true})\n }\n\n handleCloseBrowser = (event) => {\n this.setState({showBrowser: false})\n }\n\n handleSelectAsset = (asset) => {\n const {onChange} = this.props\n\n onChange(\n PatchEvent.from([\n setIfMissing({asset: {_ref: asset._id}}, []),\n set({_ref: asset._id}, ['asset']),\n ])\n )\n\n this.setState({showBrowser: false, assetDocument: asset}, () => {\n this.setupAssetListener()\n })\n }\n\n handleVideoReadyToPlay = () => {\n this.setState({videoReadyToPlay: true})\n }\n\n renderSetup() {\n const {secrets} = this.state\n\n return (\n <Dialog\n header=\"Mux API Credentials\"\n width={1}\n onClose={this.handleCancelSaveSetup}\n zOffset={1000}\n >\n <Setup\n secrets={secrets || null}\n onSave={this.handleSaveSetup}\n onCancel={this.handleCancelSaveSetup}\n />\n </Dialog>\n )\n }\n\n renderSetupButton() {\n const {isLoading, showSetup, needsSetup} = this.state\n const renderSetup = !isLoading && showSetup\n return (\n <div className={styles.setupButtonContainer}>\n <Button\n tone={needsSetup ? 'critical' : 'positive'}\n mode=\"bleed\"\n onClick={this.handleSetupButtonClicked}\n icon={SetupIcon}\n padding={3}\n radius={3}\n aria-label=\"Set up Mux credentials\"\n />\n {renderSetup && this.renderSetup()}\n </div>\n )\n }\n\n renderSetupNotice() {\n const {isLoading, isInitialSetup} = this.state\n\n if (isLoading) {\n return null\n }\n\n return (\n <Stack padding={4} space={5} style={{backgroundColor: '#efefefef', borderRadius: 3}}>\n <MuxLogo />\n <Stack space={4}>\n {isInitialSetup && (\n <Text>\n Looks like this is the first time you are using the Mux video plugin in this\n dataset. Great!\n </Text>\n )}\n <Text>Before you can upload video, you must set your Mux credentials.</Text>\n <Text>Click the plugin button in the field title to open Setup.</Text>\n </Stack>\n </Stack>\n )\n }\n\n // eslint-disable-next-line complexity\n renderAsset() {\n const {assetDocument, isSigned} = this.state\n const renderAsset = !!assetDocument\n if (!renderAsset) {\n return null\n }\n const isSignedAlert = isSigned ? (\n <Card padding={3} radius={2} shadow={1} tone=\"positive\">\n <Text size={1}>This Mux asset is using a signed url.</Text>\n </Card>\n ) : null\n return (\n <Stack space={2} marginBottom={2}>\n {isSignedAlert}\n <Video\n assetDocument={assetDocument}\n ref={this.videoPlayer}\n onReady={this.handleVideoReadyToPlay}\n onCancel={this.handleRemoveVideo}\n />\n </Stack>\n )\n }\n\n renderVideoButtons() {\n const {assetDocument, confirmRemove} = this.state\n const {readOnly} = this.props\n if (assetDocument && assetDocument.status === 'ready' && !readOnly) {\n return [\n <Button\n key=\"browse\"\n mode=\"ghost\"\n tone=\"primary\"\n onClick={this.handleBrowseButton}\n text=\"Browse\"\n />,\n <Button\n key=\"thumbnail\"\n mode=\"ghost\"\n tone=\"primary\"\n disabled={this.state.videoReadyToPlay === false}\n onClick={this.handleOpenThumb}\n text=\"Thumbnail\"\n />,\n <Button\n key=\"remove\"\n ref={this.removeVideoButton}\n onClick={confirmRemove ? NOOP : this.handleRemoveVideoButtonClicked}\n mode=\"ghost\"\n tone=\"critical\"\n text=\"Remove\"\n />,\n ]\n }\n return null\n }\n\n renderBrowser() {\n return (\n <FullscreenDialog title=\"Select video\" onClose={this.handleCloseBrowser} isOpen>\n <SelectAsset onSelect={this.handleSelectAsset} />\n </FullscreenDialog>\n )\n }\n\n renderError() {\n const {error} = this.state\n if (!error) {\n return null\n }\n return (\n <Dialog header=\"Error\" onClose={this.handleErrorClose}>\n <DialogContent size=\"small\">{error.message}</DialogContent>\n </Dialog>\n )\n }\n\n render() {\n const {type, level, markers} = this.props\n const {\n isLoading,\n secrets,\n hasFocus,\n needsSetup,\n error,\n showBrowser,\n confirmRemove,\n thumb,\n assetDocument,\n } = this.state\n\n const cssAspectRatio = assetDocument?.data?.aspect_ratio?.split(':')?.join('/') || 'auto'\n\n return (\n <ThemeProvider theme={studioTheme}>\n <Box style={{position: 'relative'}}>\n <Flex align=\"center\" justify=\"space-between\">\n <FormField\n label={type.title}\n markers={markers}\n description={type.description}\n level={level}\n className={styles.formField}\n />\n {this.renderSetupButton()}\n </Flex>\n\n {isLoading === 'secrets' && (\n <Box marginBottom={2}>\n <Inline align=\"center\" space={2}>\n <Spinner inline />\n <Text size={1}>Fetching credentials</Text>\n </Inline>\n </Box>\n )}\n\n {needsSetup && this.renderSetupNotice()}\n\n {!needsSetup && (\n <Uploader\n buttons={this.renderVideoButtons()}\n hasFocus={hasFocus}\n // eslint-disable-next-line react/jsx-handler-names\n onBlur={this.blur}\n // eslint-disable-next-line react/jsx-handler-names\n onFocus={this.focus}\n onSetupButtonClicked={this.handleSetupButtonClicked}\n onUploadComplete={this.handleOnUploadComplete}\n secrets={secrets}\n onBrowse={this.handleBrowseButton}\n >\n {this.renderAsset()}\n </Uploader>\n )}\n\n {thumb && (\n <Dialog header=\"Thumbnail\" zOffset={1000} onClose={this.handleCloseThumbPreview}>\n <Stack space={3} padding={3}>\n <Stack space={3}>\n <Stack space={2}>\n <Text size={1} weight=\"semibold\">\n Current:\n </Text>\n <img\n style={{\n maxWidth: '100%',\n borderRadius: '0.1875rem',\n display: 'block',\n aspectRatio: cssAspectRatio,\n }}\n src={this.state.thumb}\n width={400}\n />\n </Stack>\n <Stack space={2}>\n <Text size={1} weight=\"semibold\">\n New:\n </Text>\n <img\n style={{\n maxWidth: '100%',\n borderRadius: '0.1875rem',\n display: 'block',\n aspectRatio: cssAspectRatio,\n }}\n src={this.state.newThumb}\n width={400}\n />\n </Stack>\n </Stack>\n <Button\n key=\"thumbnail\"\n mode=\"ghost\"\n tone=\"primary\"\n disabled={this.state.videoReadyToPlay === false}\n onClick={this.handleSetThumbButton}\n loading={this.state.thumbLoading}\n text=\"Set new thumbnail\"\n />\n </Stack>\n </Dialog>\n )}\n\n {showBrowser && this.renderBrowser()}\n\n {confirmRemove && (\n <Dialog header=\"Remove video\" zOffset={1000} onClose={this.handleCancelRemove}>\n <Box padding={4}>\n <Stack space={3}>\n <Flex align=\"center\">\n <Checkbox\n checked={this.state.deleteOnMuxChecked}\n onChange={this.handleDeleteOnMuxCheckBoxClicked}\n />\n <Text style={{margin: '0 10px'}}>Delete asset on Mux</Text>\n </Flex>\n <Flex align=\"center\">\n <Checkbox\n disabled={this.state.deleteOnMuxChecked}\n checked={\n this.state.deleteOnMuxChecked || this.state.deleteAssetDocumentChecked\n }\n onChange={this.handleDeleteAssetDocumentCheckBoxClicked}\n />\n <Text style={{margin: '0 10px'}}>Delete video from dataset</Text>\n </Flex>\n <Grid columns={2} gap={2}>\n <Button\n mode=\"ghost\"\n tone=\"default\"\n text=\"Cancel\"\n onClick={this.handleCancelRemove}\n loading={!!isLoading}\n />\n <Button\n mode=\"default\"\n tone=\"critical\"\n text=\"Remove\"\n onClick={this.handleRemoveVideo}\n loading={!!isLoading}\n />\n </Grid>\n </Stack>\n </Box>\n </Dialog>\n )}\n\n {error && this.renderError()}\n </Box>\n </ThemeProvider>\n )\n }\n }\n)\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Input.js","names":["NOOP","cachedSecrets","token","secretKey","enableSignedUrls","signingKeyId","signingKeyPrivate","validateSecrets","secrets","getSecrets","Promise","resolve","isInitialSetup","needsSetup","fetchSecrets","then","exists","withDocument","MuxVideoInput","Component","constructor","props","assetDocument","confirmRemove","deleteOnMuxChecked","deleteAssetDocumentChecked","error","hasFocus","isLoading","isSigned","showSetup","showBrowser","videoReadyToPlay","thumbLoading","handleFocus","setState","state","pollInterval","setInterval","getAsset","assetId","response","data","client","patch","_id","set","status","commit","returnDocuments","catch","event","prevState","showStetup","result","onChange","PatchEvent","from","setIfMissing","asset","_type","_ref","document","setupAssetListener","preventDefault","stopPropagation","unsetAsset","reject","unset","delete","deleteAsset","videoPlayer","current","currentTime","getVideoElement","options","time","thumbTime","width","height","fitMode","thumb","getPosterSrc","playbackId","newThumb","value","setupButton","React","createRef","video","removeVideoButton","componentDidMount","componentWillUnmount","subscription","unsubscribe","clearInterval","observePaths","pipe","tap","handleRemoveVideo","Error","errors","messages","join","static_renditions","pollMux","config","mp4_support","playback_ids","policy","of","subscribe","renderSetup","handleCancelSaveSetup","handleSaveSetup","renderSetupButton","styles","setupButtonContainer","handleSetupButtonClicked","SetupIcon","renderSetupNotice","backgroundColor","borderRadius","renderAsset","isSignedAlert","handleVideoReadyToPlay","renderVideoButtons","readOnly","handleBrowseButton","handleOpenThumb","handleRemoveVideoButtonClicked","renderBrowser","handleCloseBrowser","handleSelectAsset","renderError","handleErrorClose","message","render","type","level","markers","cssAspectRatio","aspect_ratio","split","studioTheme","position","title","description","formField","blur","focus","handleOnUploadComplete","handleCloseThumbPreview","maxWidth","display","aspectRatio","handleSetThumbButton","handleCancelRemove","handleDeleteOnMuxCheckBoxClicked","margin","handleDeleteAssetDocumentCheckBoxClicked"],"sources":["../../src/components/Input.js"],"sourcesContent":["import {\n Box,\n Button,\n Card,\n Checkbox,\n Dialog,\n Flex,\n Grid,\n Inline,\n Stack,\n studioTheme,\n Text,\n ThemeProvider,\n} from '@sanity/ui'\nimport SetupIcon from 'part:@sanity/base/plugin-icon'\nimport {observePaths} from 'part:@sanity/base/preview'\nimport DialogContent from 'part:@sanity/components/dialogs/content'\nimport FullscreenDialog from 'part:@sanity/components/dialogs/fullscreen'\nimport FormField from 'part:@sanity/components/formfields/default'\nimport Spinner from 'part:@sanity/components/loading/spinner'\nimport {withDocument} from 'part:@sanity/form-builder'\nimport PatchEvent, {set, setIfMissing, unset} from 'part:@sanity/form-builder/patch-event'\nimport React, {Component} from 'react'\nimport {of} from 'rxjs'\nimport {tap} from 'rxjs/operators'\nimport {deleteAsset, getAsset} from '../actions/assets'\nimport {fetchSecrets} from '../actions/secrets'\nimport client from '../clients/SanityClient'\nimport getPosterSrc from '../util/getPosterSrc'\nimport styles from './Input.css'\nimport MuxLogo from './MuxLogo'\nimport SelectAsset from './SelectAsset'\nimport Setup from './Setup'\nimport Uploader from './Uploader'\nimport Video from './Video'\nimport config from '../config'\n\nconst NOOP = () => {\n /* intentional noop */\n}\n\nconst cachedSecrets = {\n token: null,\n secretKey: null,\n enableSignedUrls: false,\n signingKeyId: null,\n signingKeyPrivate: null,\n}\n\nfunction validateSecrets(secrets) {\n if (!secrets.token || !secrets.secretKey) return false\n\n return true\n}\n\nfunction getSecrets() {\n if (cachedSecrets.token) {\n return Promise.resolve({\n isInitialSetup: true,\n needsSetup: false,\n secrets: cachedSecrets,\n })\n }\n return fetchSecrets().then(({secrets, exists}) => {\n cachedSecrets.token = secrets.token\n cachedSecrets.secretKey = secrets.secretKey\n cachedSecrets.enableSignedUrls = secrets.enableSignedUrls\n cachedSecrets.signingKeyId = secrets.signingKeyId\n cachedSecrets.signingKeyPrivate = secrets.signingKeyPrivate\n\n return {\n isInitialSetup: !exists,\n needsSetup: !validateSecrets(cachedSecrets),\n secrets: cachedSecrets,\n }\n })\n}\n\nexport default withDocument(\n class MuxVideoInput extends Component {\n state = {\n assetDocument: null,\n confirmRemove: false,\n deleteOnMuxChecked: false,\n deleteAssetDocumentChecked: true,\n error: null,\n hasFocus: false,\n isInitialSetup: true,\n isLoading: 'secrets',\n needsSetup: true,\n secrets: null,\n isSigned: false,\n showSetup: false,\n showBrowser: false,\n videoReadyToPlay: false,\n thumbLoading: false,\n }\n\n constructor(props) {\n super(props)\n getSecrets()\n .then(({secrets, isInitialSetup, needsSetup}) => {\n this.setState({\n secrets,\n isInitialSetup,\n needsSetup,\n isLoading: props.value?.asset, // If there is an asset continue loading\n })\n })\n .catch((error) => this.setState({error}))\n\n this.setupButton = React.createRef()\n this.pollInterval = null\n this.video = React.createRef()\n this.removeVideoButton = React.createRef()\n this.videoPlayer = React.createRef()\n }\n\n componentDidMount() {\n this.setupAssetListener()\n }\n\n componentWillUnmount() {\n if (this.subscription) {\n this.subscription.unsubscribe()\n }\n if (this.pollInterval) {\n clearInterval(this.pollInterval)\n this.pollInterval = null\n }\n }\n\n focus = () => {\n this.handleFocus()\n }\n\n handleFocus = () => {\n this.setState({hasFocus: true})\n }\n\n handleBlur = () => {\n this.setState({hasFocus: false})\n }\n\n getAsset() {\n const {value} = this.props\n return value ? value.asset : null\n }\n\n setupAssetListener() {\n if (this.subscription) {\n this.subscription.unsubscribe()\n }\n this.setState({videoReadyToPlay: false})\n const asset = this.getAsset()\n if (!asset) {\n return\n }\n this.subscription = observePaths(asset, [\n 'thumbTime',\n 'data',\n 'assetId',\n 'playbackId',\n 'status',\n ])\n .pipe(\n tap((assetDocument) => {\n this.setState({assetDocument})\n if (assetDocument && assetDocument.status === 'errored') {\n clearInterval(this.pollInterval)\n this.pollInterval = null\n // eslint-disable-next-line no-warning-comments\n // todo: use client.observable\n return this.handleRemoveVideo().then(() => {\n this.setState({\n isLoading: false,\n error: new Error(assetDocument.data.errors.messages.join(' ')),\n })\n })\n }\n // Poll MUX if it's preparing the main document or its own static renditions\n if (\n assetDocument?.status === 'preparing' ||\n assetDocument?.data?.static_renditions?.status === 'preparing'\n ) {\n this.pollMux()\n }\n // If MP4 support is enabled: MUX will prepare static_renditions only _after_ an asset\n // has been successfully uploaded.\n // A _ready_ asset doesn't mean static mp4s are generated and ready for use!\n // In these cases, wait for `static_renditions.status === 'ready'` before clearing the poll interval.\n if (assetDocument && assetDocument.status === 'ready') {\n switch (config.mp4_support) {\n case 'standard':\n if (assetDocument?.data?.static_renditions?.status === 'ready') {\n clearInterval(this.pollInterval)\n this.pollInterval = null\n }\n break\n case 'none':\n default:\n clearInterval(this.pollInterval)\n this.pollInterval = null\n break\n }\n }\n\n // eslint-disable-next-line camelcase\n const isSigned = assetDocument?.data?.playback_ids[0]?.policy === 'signed'\n this.setState({assetDocument, isSigned, isLoading: false})\n\n return of(assetDocument)\n })\n )\n .subscribe()\n }\n\n pollMux = () => {\n const assetDocument = this.state.assetDocument\n if (!assetDocument) {\n return\n }\n if (this.pollInterval) {\n return\n }\n this.pollInterval = setInterval(() => {\n getAsset(assetDocument.assetId)\n .then((response) => {\n const props = response.data\n\n client\n .patch(assetDocument._id)\n .set({\n status: props.status,\n data: props,\n })\n .commit({returnDocuments: false})\n })\n .catch((error) => {\n this.setState({error})\n })\n }, 2000)\n }\n\n handleSetupButtonClicked = (event) => {\n this.setState((prevState) => ({showSetup: !prevState.showStetup}))\n }\n\n handleSaveSetup = ({token, secretKey, enableSignedUrls, signingKeyId, signingKeyPrivate}) => {\n cachedSecrets.token = token\n cachedSecrets.secretKey = secretKey\n cachedSecrets.enableSignedUrls = enableSignedUrls\n cachedSecrets.signingKeyId = signingKeyId\n cachedSecrets.signingKeyPrivate = signingKeyPrivate\n\n this.setState({\n showSetup: false,\n secrets: cachedSecrets,\n needsSetup: !validateSecrets(cachedSecrets),\n })\n }\n\n handleCancelSaveSetup = () => {\n this.setState({showSetup: false})\n }\n\n handleOnUploadComplete = (result) => {\n const {onChange} = this.props\n const {_id} = result\n onChange(\n PatchEvent.from([\n setIfMissing({asset: {}}),\n set({_type: 'reference', _ref: _id}, ['asset']),\n ])\n )\n this.setState({assetDocument: result.document}, () => {\n this.setupAssetListener()\n })\n }\n\n handleRemoveVideoButtonClicked = (event) => {\n event.preventDefault()\n event.stopPropagation()\n this.setState({confirmRemove: true})\n }\n\n handleRemoveVideo = () => {\n const {assetDocument} = this.state\n this.setState({isLoading: true})\n const unsetAsset = () => {\n return new Promise((resolve, reject) => {\n this.setState(\n {\n assetDocument: null,\n confirmRemove: false,\n isLoading: false,\n },\n () => {\n if (this.state.deleteOnMuxChecked || this.state.deleteAssetDocumentChecked) {\n return client\n .patch(this.props.document._id)\n .unset(['video'])\n .commit({returnDocuments: false})\n .then(() => {\n if (!assetDocument) {\n return resolve()\n }\n return client\n .delete(assetDocument._id)\n .then(() => {\n resolve()\n })\n .catch((error) => {\n reject(error)\n })\n })\n }\n return this.props.onChange(PatchEvent.from(unset()))\n }\n )\n })\n }\n return unsetAsset()\n .then(() => {\n if (this.state.deleteOnMuxChecked) {\n return deleteAsset(assetDocument.assetId).catch((error) => {\n this.setState({error})\n })\n }\n return true\n })\n .catch((error) => {\n this.setState({error})\n })\n }\n\n handleCancelRemove = (event) => {\n this.setState({\n confirmRemove: false,\n deleteOnMuxChecked: true,\n deleteAssetDocumentChecked: true,\n })\n }\n\n handleDeleteOnMuxCheckBoxClicked = (event) => {\n this.setState((prevState) => ({\n deleteOnMuxChecked: !prevState.deleteOnMuxChecked,\n }))\n }\n\n handleDeleteAssetDocumentCheckBoxClicked = (event) => {\n this.setState((prevState) => ({\n deleteAssetDocumentChecked: !prevState.deleteAssetDocumentChecked,\n }))\n }\n\n handleOpenThumb = (event) => {\n if (!this.videoPlayer.current) {\n return\n }\n const {assetDocument, isSigned} = this.state\n const currentTime = this.videoPlayer.current.getVideoElement().currentTime\n const options = {\n time: assetDocument.thumbTime,\n width: 320,\n height: 320,\n fitMode: 'crop',\n isSigned,\n signingKeyId: cachedSecrets.signingKeyId,\n signingKeyPrivate: cachedSecrets.signingKeyPrivate,\n }\n\n const thumb = getPosterSrc(assetDocument.playbackId, options)\n const newThumb = getPosterSrc(assetDocument.playbackId, {...options, time: currentTime})\n\n this.setState({thumb, newThumb})\n }\n\n handleSetThumbButton = (event) => {\n if (!this.videoPlayer.current) {\n return\n }\n\n this.setState({thumbLoading: true})\n const {assetDocument, isSigned} = this.state\n const currentTime = this.videoPlayer.current.getVideoElement().currentTime\n client\n .patch(assetDocument._id)\n .set({\n thumbTime: currentTime,\n })\n .commit({returnDocuments: false})\n .then((response) => {\n const options = {\n time: currentTime,\n width: 320,\n height: 320,\n fitMode: 'crop',\n isSigned,\n signingKeyId: cachedSecrets.signingKeyId,\n signingKeyPrivate: cachedSecrets.signingKeyPrivate,\n }\n\n const thumb = getPosterSrc(assetDocument.playbackId, options)\n\n this.setState({thumb, thumbLoading: false})\n })\n .catch((error) => {\n this.setState({error, thumbLoading: false})\n })\n }\n\n handleErrorClose = (event) => {\n if (event) {\n event.preventDefault()\n }\n\n this.setState({\n error: null,\n })\n }\n\n handleCloseThumbPreview = (event) => {\n this.setState({thumb: null})\n }\n\n handleBrowseButton = (event) => {\n this.setState({showBrowser: true})\n }\n\n handleCloseBrowser = (event) => {\n this.setState({showBrowser: false})\n }\n\n handleSelectAsset = (asset) => {\n const {onChange} = this.props\n\n onChange(\n PatchEvent.from([\n setIfMissing({asset: {}}),\n set({_type: 'reference', _ref: asset._id}, ['asset']),\n ])\n )\n\n this.setState({showBrowser: false, assetDocument: asset}, () => {\n this.setupAssetListener()\n })\n }\n\n handleVideoReadyToPlay = () => {\n this.setState({videoReadyToPlay: true})\n }\n\n renderSetup() {\n const {secrets} = this.state\n\n return (\n <Dialog\n header=\"Mux API Credentials\"\n width={1}\n onClose={this.handleCancelSaveSetup}\n zOffset={1000}\n >\n <Setup\n secrets={secrets || null}\n onSave={this.handleSaveSetup}\n onCancel={this.handleCancelSaveSetup}\n />\n </Dialog>\n )\n }\n\n renderSetupButton() {\n const {isLoading, showSetup, needsSetup} = this.state\n const renderSetup = !isLoading && showSetup\n return (\n <div className={styles.setupButtonContainer}>\n <Button\n tone={needsSetup ? 'critical' : 'positive'}\n mode=\"bleed\"\n onClick={this.handleSetupButtonClicked}\n icon={SetupIcon}\n padding={3}\n radius={3}\n aria-label=\"Set up Mux credentials\"\n />\n {renderSetup && this.renderSetup()}\n </div>\n )\n }\n\n renderSetupNotice() {\n const {isLoading, isInitialSetup} = this.state\n\n if (isLoading) {\n return null\n }\n\n return (\n <Stack padding={4} space={5} style={{backgroundColor: '#efefefef', borderRadius: 3}}>\n <MuxLogo />\n <Stack space={4}>\n {isInitialSetup && (\n <Text>\n Looks like this is the first time you are using the Mux video plugin in this\n dataset. Great!\n </Text>\n )}\n <Text>Before you can upload video, you must set your Mux credentials.</Text>\n <Text>Click the plugin button in the field title to open Setup.</Text>\n </Stack>\n </Stack>\n )\n }\n\n // eslint-disable-next-line complexity\n renderAsset() {\n const {assetDocument, isSigned} = this.state\n const renderAsset = !!assetDocument\n if (!renderAsset) {\n return null\n }\n const isSignedAlert = isSigned ? (\n <Card padding={3} radius={2} shadow={1} tone=\"positive\">\n <Text size={1}>This Mux asset is using a signed url.</Text>\n </Card>\n ) : null\n return (\n <Stack space={2} marginBottom={2}>\n {isSignedAlert}\n <Video\n assetDocument={assetDocument}\n ref={this.videoPlayer}\n onReady={this.handleVideoReadyToPlay}\n onCancel={this.handleRemoveVideo}\n />\n </Stack>\n )\n }\n\n renderVideoButtons() {\n const {assetDocument, confirmRemove} = this.state\n const {readOnly} = this.props\n if (assetDocument && assetDocument.status === 'ready' && !readOnly) {\n return [\n <Button\n key=\"browse\"\n mode=\"ghost\"\n tone=\"primary\"\n onClick={this.handleBrowseButton}\n text=\"Browse\"\n />,\n <Button\n key=\"thumbnail\"\n mode=\"ghost\"\n tone=\"primary\"\n disabled={this.state.videoReadyToPlay === false}\n onClick={this.handleOpenThumb}\n text=\"Thumbnail\"\n />,\n <Button\n key=\"remove\"\n ref={this.removeVideoButton}\n onClick={confirmRemove ? NOOP : this.handleRemoveVideoButtonClicked}\n mode=\"ghost\"\n tone=\"critical\"\n text=\"Remove\"\n />,\n ]\n }\n return null\n }\n\n renderBrowser() {\n return (\n <FullscreenDialog title=\"Select video\" onClose={this.handleCloseBrowser} isOpen>\n <SelectAsset onSelect={this.handleSelectAsset} />\n </FullscreenDialog>\n )\n }\n\n renderError() {\n const {error} = this.state\n if (!error) {\n return null\n }\n return (\n <Dialog header=\"Error\" onClose={this.handleErrorClose}>\n <DialogContent size=\"small\">{error.message}</DialogContent>\n </Dialog>\n )\n }\n\n render() {\n const {type, level, markers} = this.props\n const {\n isLoading,\n secrets,\n hasFocus,\n needsSetup,\n error,\n showBrowser,\n confirmRemove,\n thumb,\n assetDocument,\n } = this.state\n\n const cssAspectRatio = assetDocument?.data?.aspect_ratio?.split(':')?.join('/') || 'auto'\n\n return (\n <ThemeProvider theme={studioTheme}>\n <Box style={{position: 'relative'}}>\n <Flex align=\"center\" justify=\"space-between\">\n <FormField\n label={type.title}\n markers={markers}\n description={type.description}\n level={level}\n className={styles.formField}\n />\n {this.renderSetupButton()}\n </Flex>\n\n {isLoading === 'secrets' && (\n <Box marginBottom={2}>\n <Inline align=\"center\" space={2}>\n <Spinner inline />\n <Text size={1}>Fetching credentials</Text>\n </Inline>\n </Box>\n )}\n\n {needsSetup && this.renderSetupNotice()}\n\n {!needsSetup && (\n <Uploader\n buttons={this.renderVideoButtons()}\n hasFocus={hasFocus}\n // eslint-disable-next-line react/jsx-handler-names\n onBlur={this.blur}\n // eslint-disable-next-line react/jsx-handler-names\n onFocus={this.focus}\n onSetupButtonClicked={this.handleSetupButtonClicked}\n onUploadComplete={this.handleOnUploadComplete}\n secrets={secrets}\n onBrowse={this.handleBrowseButton}\n >\n {this.renderAsset()}\n </Uploader>\n )}\n\n {thumb && (\n <Dialog header=\"Thumbnail\" zOffset={1000} onClose={this.handleCloseThumbPreview}>\n <Stack space={3} padding={3}>\n <Stack space={3}>\n <Stack space={2}>\n <Text size={1} weight=\"semibold\">\n Current:\n </Text>\n <img\n style={{\n maxWidth: '100%',\n borderRadius: '0.1875rem',\n display: 'block',\n aspectRatio: cssAspectRatio,\n }}\n src={this.state.thumb}\n width={400}\n />\n </Stack>\n <Stack space={2}>\n <Text size={1} weight=\"semibold\">\n New:\n </Text>\n <img\n style={{\n maxWidth: '100%',\n borderRadius: '0.1875rem',\n display: 'block',\n aspectRatio: cssAspectRatio,\n }}\n src={this.state.newThumb}\n width={400}\n />\n </Stack>\n </Stack>\n <Button\n key=\"thumbnail\"\n mode=\"ghost\"\n tone=\"primary\"\n disabled={this.state.videoReadyToPlay === false}\n onClick={this.handleSetThumbButton}\n loading={this.state.thumbLoading}\n text=\"Set new thumbnail\"\n />\n </Stack>\n </Dialog>\n )}\n\n {showBrowser && this.renderBrowser()}\n\n {confirmRemove && (\n <Dialog header=\"Remove video\" zOffset={1000} onClose={this.handleCancelRemove}>\n <Box padding={4}>\n <Stack space={3}>\n <Flex align=\"center\">\n <Checkbox\n checked={this.state.deleteOnMuxChecked}\n onChange={this.handleDeleteOnMuxCheckBoxClicked}\n />\n <Text style={{margin: '0 10px'}}>Delete asset on Mux</Text>\n </Flex>\n <Flex align=\"center\">\n <Checkbox\n disabled={this.state.deleteOnMuxChecked}\n checked={\n this.state.deleteOnMuxChecked || this.state.deleteAssetDocumentChecked\n }\n onChange={this.handleDeleteAssetDocumentCheckBoxClicked}\n />\n <Text style={{margin: '0 10px'}}>Delete video from dataset</Text>\n </Flex>\n <Grid columns={2} gap={2}>\n <Button\n mode=\"ghost\"\n tone=\"default\"\n text=\"Cancel\"\n onClick={this.handleCancelRemove}\n loading={!!isLoading}\n />\n <Button\n mode=\"default\"\n tone=\"critical\"\n text=\"Remove\"\n onClick={this.handleRemoveVideo}\n loading={!!isLoading}\n />\n </Grid>\n </Stack>\n </Box>\n </Dialog>\n )}\n\n {error && this.renderError()}\n </Box>\n </ThemeProvider>\n )\n }\n }\n)\n"],"mappings":"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"}
|