sanity-plugin-mux-input 1.1.0
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.
- package/LICENSE +21 -0
- package/README.md +86 -0
- package/build/actions/assets.js +37 -0
- package/build/actions/assets.js.map +1 -0
- package/build/actions/secrets.js +125 -0
- package/build/actions/secrets.js.map +1 -0
- package/build/actions/upload.js +280 -0
- package/build/actions/upload.js.map +1 -0
- package/build/clients/SanityClient.js +19 -0
- package/build/clients/SanityClient.js.map +1 -0
- package/build/clients/upChunkObservable.js +66 -0
- package/build/clients/upChunkObservable.js.map +1 -0
- package/build/components/FileInputButton.js +84 -0
- package/build/components/FileInputButton.js.map +1 -0
- package/build/components/Input.css +30 -0
- package/build/components/Input.js +823 -0
- package/build/components/Input.js.map +1 -0
- package/build/components/MuxLogo.js +19 -0
- package/build/components/MuxLogo.js.map +1 -0
- package/build/components/Preview.css +16 -0
- package/build/components/Preview.js +95 -0
- package/build/components/Preview.js.map +1 -0
- package/build/components/SelectAsset.css +56 -0
- package/build/components/SelectAsset.js +162 -0
- package/build/components/SelectAsset.js.map +1 -0
- package/build/components/Setup.css +7 -0
- package/build/components/Setup.js +311 -0
- package/build/components/Setup.js.map +1 -0
- package/build/components/UploadPlaceholder.css +81 -0
- package/build/components/UploadPlaceholder.js +92 -0
- package/build/components/UploadPlaceholder.js.map +1 -0
- package/build/components/Uploader.css +28 -0
- package/build/components/Uploader.js +534 -0
- package/build/components/Uploader.js.map +1 -0
- package/build/components/Video.css +21 -0
- package/build/components/Video.js +360 -0
- package/build/components/Video.js.map +1 -0
- package/build/config.js +17 -0
- package/build/config.js.map +1 -0
- package/build/index.js +22 -0
- package/build/index.js.map +1 -0
- package/build/schema/mux.video.js +41 -0
- package/build/schema/mux.video.js.map +1 -0
- package/build/schema/mux.videoAsset.js +29 -0
- package/build/schema/mux.videoAsset.js.map +1 -0
- package/build/util/extractFiles.js +70 -0
- package/build/util/extractFiles.js.map +1 -0
- package/build/util/formatTime.js +28 -0
- package/build/util/formatTime.js.map +1 -0
- package/build/util/generateJwt.js +30 -0
- package/build/util/generateJwt.js.map +1 -0
- package/build/util/getPosterSrc.js +46 -0
- package/build/util/getPosterSrc.js.map +1 -0
- package/build/util/getStoryboardSrc.js +26 -0
- package/build/util/getStoryboardSrc.js.map +1 -0
- package/build/util/getVideoSrc.js +23 -0
- package/build/util/getVideoSrc.js.map +1 -0
- package/config.dist.json +3 -0
- package/package.json +85 -0
- package/sanity.json +16 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/Input.js"],"names":["NOOP","cachedSecrets","token","secretKey","enableSignedUrls","signingKeyId","signingKeyPrivate","validateSecrets","secrets","getSecrets","Promise","resolve","isInitialSetup","needsSetup","then","exists","MuxVideoInput","Component","constructor","props","assetDocument","confirmRemove","deleteOnMuxChecked","deleteAssetDocumentChecked","error","hasFocus","isLoading","isSigned","showSetup","showBrowser","videoReadyToPlay","thumbLoading","handleFocus","setState","state","pollInterval","setInterval","assetId","response","data","client","patch","_id","set","status","commit","returnDocuments","catch","event","prevState","showStetup","result","onChange","PatchEvent","from","asset","_ref","document","setupAssetListener","preventDefault","stopPropagation","unsetAsset","reject","unset","delete","videoPlayer","current","currentTime","getVideoElement","options","time","thumbTime","width","height","fitMode","thumb","playbackId","newThumb","value","setupButton","React","createRef","video","removeVideoButton","componentDidMount","componentWillUnmount","subscription","unsubscribe","clearInterval","getAsset","pipe","handleRemoveVideo","Error","errors","messages","join","static_renditions","pollMux","config","mp4_support","playback_ids","policy","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"],"mappings":"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","sourcesContent":["import {\r\n Box,\r\n Button,\r\n Card,\r\n Checkbox,\r\n Dialog,\r\n Flex,\r\n Grid,\r\n Inline,\r\n Stack,\r\n studioTheme,\r\n Text,\r\n ThemeProvider,\r\n} from '@sanity/ui'\r\nimport SetupIcon from 'part:@sanity/base/plugin-icon'\r\nimport {observePaths} from 'part:@sanity/base/preview'\r\nimport DialogContent from 'part:@sanity/components/dialogs/content'\r\nimport FullscreenDialog from 'part:@sanity/components/dialogs/fullscreen'\r\nimport FormField from 'part:@sanity/components/formfields/default'\r\nimport Spinner from 'part:@sanity/components/loading/spinner'\r\nimport {withDocument} from 'part:@sanity/form-builder'\r\nimport PatchEvent, {set, setIfMissing, unset} from 'part:@sanity/form-builder/patch-event'\r\nimport React, {Component} from 'react'\r\nimport {of} from 'rxjs'\r\nimport {tap} from 'rxjs/operators'\r\nimport {deleteAsset, getAsset} from '../actions/assets'\r\nimport {fetchSecrets} from '../actions/secrets'\r\nimport client from '../clients/SanityClient'\r\nimport getPosterSrc from '../util/getPosterSrc'\r\nimport styles from './Input.css'\r\nimport MuxLogo from './MuxLogo'\r\nimport SelectAsset from './SelectAsset'\r\nimport Setup from './Setup'\r\nimport Uploader from './Uploader'\r\nimport Video from './Video'\r\nimport config from '../config'\r\n\r\nconst NOOP = () => {\r\n /* intentional noop */\r\n}\r\n\r\nconst cachedSecrets = {\r\n token: null,\r\n secretKey: null,\r\n enableSignedUrls: false,\r\n signingKeyId: null,\r\n signingKeyPrivate: null,\r\n}\r\n\r\nfunction validateSecrets(secrets) {\r\n if (!secrets.token || !secrets.secretKey) return false\r\n\r\n return true\r\n}\r\n\r\nfunction getSecrets() {\r\n if (cachedSecrets.token) {\r\n return Promise.resolve({\r\n isInitialSetup: true,\r\n needsSetup: false,\r\n secrets: cachedSecrets,\r\n })\r\n }\r\n return fetchSecrets().then(({secrets, exists}) => {\r\n cachedSecrets.token = secrets.token\r\n cachedSecrets.secretKey = secrets.secretKey\r\n cachedSecrets.enableSignedUrls = secrets.enableSignedUrls\r\n cachedSecrets.signingKeyId = secrets.signingKeyId\r\n cachedSecrets.signingKeyPrivate = secrets.signingKeyPrivate\r\n\r\n return {\r\n isInitialSetup: !exists,\r\n needsSetup: !validateSecrets(cachedSecrets),\r\n secrets: cachedSecrets,\r\n }\r\n })\r\n}\r\n\r\nexport default withDocument(\r\n class MuxVideoInput extends Component {\r\n state = {\r\n assetDocument: null,\r\n confirmRemove: false,\r\n deleteOnMuxChecked: false,\r\n deleteAssetDocumentChecked: true,\r\n error: null,\r\n hasFocus: false,\r\n isInitialSetup: true,\r\n isLoading: 'secrets',\r\n needsSetup: true,\r\n secrets: null,\r\n isSigned: false,\r\n showSetup: false,\r\n showBrowser: false,\r\n videoReadyToPlay: false,\r\n thumbLoading: false,\r\n }\r\n\r\n constructor(props) {\r\n super(props)\r\n getSecrets()\r\n .then(({secrets, isInitialSetup, needsSetup}) => {\r\n this.setState({\r\n secrets,\r\n isInitialSetup,\r\n needsSetup,\r\n isLoading: props.value?.asset, // If there is an asset continue loading\r\n })\r\n })\r\n .catch((error) => this.setState({error}))\r\n\r\n this.setupButton = React.createRef()\r\n this.pollInterval = null\r\n this.video = React.createRef()\r\n this.removeVideoButton = React.createRef()\r\n this.videoPlayer = React.createRef()\r\n }\r\n\r\n componentDidMount() {\r\n this.setupAssetListener()\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe()\r\n }\r\n if (this.pollInterval) {\r\n clearInterval(this.pollInterval)\r\n this.pollInterval = null\r\n }\r\n }\r\n\r\n focus = () => {\r\n this.handleFocus()\r\n }\r\n\r\n handleFocus = () => {\r\n this.setState({hasFocus: true})\r\n }\r\n\r\n handleBlur = () => {\r\n this.setState({hasFocus: false})\r\n }\r\n\r\n getAsset() {\r\n const {value} = this.props\r\n return value ? value.asset : null\r\n }\r\n\r\n setupAssetListener() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe()\r\n }\r\n this.setState({videoReadyToPlay: false})\r\n const asset = this.getAsset()\r\n if (!asset) {\r\n return\r\n }\r\n this.subscription = observePaths(asset, [\r\n 'thumbTime',\r\n 'data',\r\n 'assetId',\r\n 'playbackId',\r\n 'status',\r\n ])\r\n .pipe(\r\n tap((assetDocument) => {\r\n this.setState({assetDocument})\r\n if (assetDocument && assetDocument.status === 'errored') {\r\n clearInterval(this.pollInterval)\r\n this.pollInterval = null\r\n // eslint-disable-next-line no-warning-comments\r\n // todo: use client.observable\r\n return this.handleRemoveVideo().then(() => {\r\n this.setState({\r\n isLoading: false,\r\n error: new Error(assetDocument.data.errors.messages.join(' ')),\r\n })\r\n })\r\n }\r\n // Poll MUX if it's preparing the main document or its own static renditions\r\n if (\r\n assetDocument?.status === 'preparing' ||\r\n assetDocument?.data?.static_renditions?.status === 'preparing'\r\n ) {\r\n this.pollMux()\r\n }\r\n // If MP4 support is enabled: MUX will prepare static_renditions only _after_ an asset\r\n // has been successfully uploaded.\r\n // A _ready_ asset doesn't mean static mp4s are generated and ready for use!\r\n // In these cases, wait for `static_renditions.status === 'ready'` before clearing the poll interval.\r\n if (assetDocument && assetDocument.status === 'ready') {\r\n switch (config.mp4_support) {\r\n case 'standard':\r\n if (assetDocument?.data?.static_renditions?.status === 'ready') {\r\n clearInterval(this.pollInterval)\r\n this.pollInterval = null\r\n }\r\n break\r\n case 'none':\r\n default:\r\n clearInterval(this.pollInterval)\r\n this.pollInterval = null\r\n break\r\n }\r\n }\r\n\r\n // eslint-disable-next-line camelcase\r\n const isSigned = assetDocument?.data?.playback_ids[0]?.policy === 'signed'\r\n this.setState({assetDocument, isSigned, isLoading: false})\r\n\r\n return of(assetDocument)\r\n })\r\n )\r\n .subscribe()\r\n }\r\n\r\n pollMux = () => {\r\n const assetDocument = this.state.assetDocument\r\n if (!assetDocument) {\r\n return\r\n }\r\n if (this.pollInterval) {\r\n return\r\n }\r\n this.pollInterval = setInterval(() => {\r\n getAsset(assetDocument.assetId)\r\n .then((response) => {\r\n const props = response.data\r\n\r\n // TODO: consider a deep comparison on `props` with asset data and only patch only if it's changed\r\n client\r\n .patch(assetDocument._id)\r\n .set({\r\n status: props.status,\r\n data: props,\r\n })\r\n .commit({returnDocuments: false})\r\n })\r\n .catch((error) => {\r\n this.setState({error})\r\n })\r\n }, 2000)\r\n }\r\n\r\n handleSetupButtonClicked = (event) => {\r\n this.setState((prevState) => ({showSetup: !prevState.showStetup}))\r\n }\r\n\r\n handleSaveSetup = ({token, secretKey, enableSignedUrls, signingKeyId, signingKeyPrivate}) => {\r\n cachedSecrets.token = token\r\n cachedSecrets.secretKey = secretKey\r\n cachedSecrets.enableSignedUrls = enableSignedUrls\r\n cachedSecrets.signingKeyId = signingKeyId\r\n cachedSecrets.signingKeyPrivate = signingKeyPrivate\r\n\r\n this.setState({\r\n showSetup: false,\r\n secrets: cachedSecrets,\r\n needsSetup: !validateSecrets(cachedSecrets),\r\n })\r\n }\r\n\r\n handleCancelSaveSetup = () => {\r\n this.setState({showSetup: false})\r\n }\r\n\r\n handleOnUploadComplete = (result) => {\r\n const {onChange} = this.props\r\n const {_id} = result\r\n onChange(\r\n PatchEvent.from([setIfMissing({asset: {_ref: _id}}, []), set({_ref: _id}, ['asset'])])\r\n )\r\n this.setState({assetDocument: result.document}, () => {\r\n this.setupAssetListener()\r\n })\r\n }\r\n\r\n handleRemoveVideoButtonClicked = (event) => {\r\n event.preventDefault()\r\n event.stopPropagation()\r\n this.setState({confirmRemove: true})\r\n }\r\n\r\n handleRemoveVideo = () => {\r\n const {assetDocument} = this.state\r\n this.setState({isLoading: true})\r\n const unsetAsset = () => {\r\n return new Promise((resolve, reject) => {\r\n this.setState(\r\n {\r\n assetDocument: null,\r\n confirmRemove: false,\r\n isLoading: false,\r\n },\r\n () => {\r\n if (this.state.deleteOnMuxChecked || this.state.deleteAssetDocumentChecked) {\r\n return client\r\n .patch(this.props.document._id)\r\n .unset(['video'])\r\n .commit({returnDocuments: false})\r\n .then(() => {\r\n if (!assetDocument) {\r\n return resolve()\r\n }\r\n return client\r\n .delete(assetDocument._id)\r\n .then(() => {\r\n resolve()\r\n })\r\n .catch((error) => {\r\n reject(error)\r\n })\r\n })\r\n }\r\n return this.props.onChange(PatchEvent.from(unset()))\r\n }\r\n )\r\n })\r\n }\r\n return unsetAsset()\r\n .then(() => {\r\n if (this.state.deleteOnMuxChecked) {\r\n return deleteAsset(assetDocument.assetId).catch((error) => {\r\n this.setState({error})\r\n })\r\n }\r\n return true\r\n })\r\n .catch((error) => {\r\n this.setState({error})\r\n })\r\n }\r\n\r\n handleCancelRemove = (event) => {\r\n this.setState({\r\n confirmRemove: false,\r\n deleteOnMuxChecked: true,\r\n deleteAssetDocumentChecked: true,\r\n })\r\n }\r\n\r\n handleDeleteOnMuxCheckBoxClicked = (event) => {\r\n this.setState((prevState) => ({\r\n deleteOnMuxChecked: !prevState.deleteOnMuxChecked,\r\n }))\r\n }\r\n\r\n handleDeleteAssetDocumentCheckBoxClicked = (event) => {\r\n this.setState((prevState) => ({\r\n deleteAssetDocumentChecked: !prevState.deleteAssetDocumentChecked,\r\n }))\r\n }\r\n\r\n handleOpenThumb = (event) => {\r\n if (!this.videoPlayer.current) {\r\n return\r\n }\r\n const {assetDocument, isSigned} = this.state\r\n const currentTime = this.videoPlayer.current.getVideoElement().currentTime\r\n const options = {\r\n time: assetDocument.thumbTime,\r\n width: 320,\r\n height: 320,\r\n fitMode: 'crop',\r\n isSigned,\r\n signingKeyId: cachedSecrets.signingKeyId,\r\n signingKeyPrivate: cachedSecrets.signingKeyPrivate,\r\n }\r\n\r\n const thumb = getPosterSrc(assetDocument.playbackId, options)\r\n const newThumb = getPosterSrc(assetDocument.playbackId, {...options, time: currentTime})\r\n\r\n this.setState({thumb, newThumb})\r\n }\r\n\r\n handleSetThumbButton = (event) => {\r\n if (!this.videoPlayer.current) {\r\n return\r\n }\r\n\r\n this.setState({thumbLoading: true})\r\n const {assetDocument, isSigned} = this.state\r\n const currentTime = this.videoPlayer.current.getVideoElement().currentTime\r\n client\r\n .patch(assetDocument._id)\r\n .set({\r\n thumbTime: currentTime,\r\n })\r\n .commit({returnDocuments: false})\r\n .then((response) => {\r\n const options = {\r\n time: currentTime,\r\n width: 320,\r\n height: 320,\r\n fitMode: 'crop',\r\n isSigned,\r\n signingKeyId: cachedSecrets.signingKeyId,\r\n signingKeyPrivate: cachedSecrets.signingKeyPrivate,\r\n }\r\n\r\n const thumb = getPosterSrc(assetDocument.playbackId, options)\r\n\r\n this.setState({thumb, thumbLoading: false})\r\n })\r\n .catch((error) => {\r\n this.setState({error, thumbLoading: false})\r\n })\r\n }\r\n\r\n handleErrorClose = (event) => {\r\n if (event) {\r\n event.preventDefault()\r\n }\r\n\r\n this.setState({\r\n error: null,\r\n })\r\n }\r\n\r\n handleCloseThumbPreview = (event) => {\r\n this.setState({thumb: null})\r\n }\r\n\r\n handleBrowseButton = (event) => {\r\n this.setState({showBrowser: true})\r\n }\r\n\r\n handleCloseBrowser = (event) => {\r\n this.setState({showBrowser: false})\r\n }\r\n\r\n handleSelectAsset = (asset) => {\r\n const {onChange} = this.props\r\n\r\n onChange(\r\n PatchEvent.from([\r\n setIfMissing({asset: {_ref: asset._id}}, []),\r\n set({_ref: asset._id}, ['asset']),\r\n ])\r\n )\r\n\r\n this.setState({showBrowser: false, assetDocument: asset}, () => {\r\n this.setupAssetListener()\r\n })\r\n }\r\n\r\n handleVideoReadyToPlay = () => {\r\n this.setState({videoReadyToPlay: true})\r\n }\r\n\r\n renderSetup() {\r\n const {secrets} = this.state\r\n\r\n return (\r\n <Dialog\r\n header=\"Mux API Credentials\"\r\n width={1}\r\n onClose={this.handleCancelSaveSetup}\r\n zOffset={1000}\r\n >\r\n <Setup\r\n secrets={secrets || null}\r\n onSave={this.handleSaveSetup}\r\n onCancel={this.handleCancelSaveSetup}\r\n />\r\n </Dialog>\r\n )\r\n }\r\n\r\n renderSetupButton() {\r\n const {isLoading, showSetup, needsSetup} = this.state\r\n const renderSetup = !isLoading && showSetup\r\n return (\r\n <div className={styles.setupButtonContainer}>\r\n <Button\r\n tone={needsSetup ? 'critical' : 'positive'}\r\n mode=\"bleed\"\r\n onClick={this.handleSetupButtonClicked}\r\n icon={SetupIcon}\r\n padding={3}\r\n radius={3}\r\n aria-label=\"Set up Mux credentials\"\r\n />\r\n {renderSetup && this.renderSetup()}\r\n </div>\r\n )\r\n }\r\n\r\n renderSetupNotice() {\r\n const {isLoading, isInitialSetup} = this.state\r\n\r\n if (isLoading) {\r\n return null\r\n }\r\n\r\n return (\r\n <Stack padding={4} space={5} style={{backgroundColor: '#efefefef', borderRadius: 3}}>\r\n <MuxLogo />\r\n <Stack space={4}>\r\n {isInitialSetup && (\r\n <Text>\r\n Looks like this is the first time you are using the Mux video plugin in this\r\n dataset. Great!\r\n </Text>\r\n )}\r\n <Text>Before you can upload video, you must set your Mux credentials.</Text>\r\n <Text>Click the plugin button in the field title to open Setup.</Text>\r\n </Stack>\r\n </Stack>\r\n )\r\n }\r\n\r\n // eslint-disable-next-line complexity\r\n renderAsset() {\r\n const {assetDocument, isSigned} = this.state\r\n const renderAsset = !!assetDocument\r\n if (!renderAsset) {\r\n return null\r\n }\r\n const isSignedAlert = isSigned ? (\r\n <Card padding={3} radius={2} shadow={1} tone=\"positive\">\r\n <Text size={1}>This Mux asset is using a signed url.</Text>\r\n </Card>\r\n ) : null\r\n return (\r\n <Stack space={2} marginBottom={2}>\r\n {isSignedAlert}\r\n <Video\r\n assetDocument={assetDocument}\r\n ref={this.videoPlayer}\r\n onReady={this.handleVideoReadyToPlay}\r\n onCancel={this.handleRemoveVideo}\r\n />\r\n </Stack>\r\n )\r\n }\r\n\r\n renderVideoButtons() {\r\n const {assetDocument, confirmRemove} = this.state\r\n const {readOnly} = this.props\r\n if (assetDocument && assetDocument.status === 'ready' && !readOnly) {\r\n return [\r\n <Button\r\n key=\"browse\"\r\n mode=\"ghost\"\r\n tone=\"primary\"\r\n onClick={this.handleBrowseButton}\r\n text=\"Browse\"\r\n />,\r\n <Button\r\n key=\"thumbnail\"\r\n mode=\"ghost\"\r\n tone=\"primary\"\r\n disabled={this.state.videoReadyToPlay === false}\r\n onClick={this.handleOpenThumb}\r\n text=\"Thumbnail\"\r\n />,\r\n <Button\r\n key=\"remove\"\r\n ref={this.removeVideoButton}\r\n onClick={confirmRemove ? NOOP : this.handleRemoveVideoButtonClicked}\r\n mode=\"ghost\"\r\n tone=\"critical\"\r\n text=\"Remove\"\r\n />,\r\n ]\r\n }\r\n return null\r\n }\r\n\r\n renderBrowser() {\r\n return (\r\n <FullscreenDialog title=\"Select video\" onClose={this.handleCloseBrowser} isOpen>\r\n <SelectAsset onSelect={this.handleSelectAsset} />\r\n </FullscreenDialog>\r\n )\r\n }\r\n\r\n renderError() {\r\n const {error} = this.state\r\n if (!error) {\r\n return null\r\n }\r\n return (\r\n <Dialog header=\"Error\" onClose={this.handleErrorClose}>\r\n <DialogContent size=\"small\">{error.message}</DialogContent>\r\n </Dialog>\r\n )\r\n }\r\n\r\n render() {\r\n const {type, level, markers} = this.props\r\n const {\r\n isLoading,\r\n secrets,\r\n hasFocus,\r\n needsSetup,\r\n error,\r\n showBrowser,\r\n confirmRemove,\r\n thumb,\r\n assetDocument,\r\n } = this.state\r\n\r\n const cssAspectRatio = assetDocument?.data?.aspect_ratio?.split(':')?.join('/') || 'auto'\r\n\r\n return (\r\n <ThemeProvider theme={studioTheme}>\r\n <Box style={{position: 'relative'}}>\r\n <Flex align=\"center\" justify=\"space-between\">\r\n <FormField\r\n label={type.title}\r\n markers={markers}\r\n description={type.description}\r\n level={level}\r\n className={styles.formField}\r\n />\r\n {this.renderSetupButton()}\r\n </Flex>\r\n\r\n {isLoading === 'secrets' && (\r\n <Box marginBottom={2}>\r\n <Inline align=\"center\" space={2}>\r\n <Spinner inline />\r\n <Text size={1}>Fetching credentials</Text>\r\n </Inline>\r\n </Box>\r\n )}\r\n\r\n {needsSetup && this.renderSetupNotice()}\r\n\r\n {!needsSetup && (\r\n <Uploader\r\n buttons={this.renderVideoButtons()}\r\n hasFocus={hasFocus}\r\n // eslint-disable-next-line react/jsx-handler-names\r\n onBlur={this.blur}\r\n // eslint-disable-next-line react/jsx-handler-names\r\n onFocus={this.focus}\r\n onSetupButtonClicked={this.handleSetupButtonClicked}\r\n onUploadComplete={this.handleOnUploadComplete}\r\n secrets={secrets}\r\n onBrowse={this.handleBrowseButton}\r\n >\r\n {this.renderAsset()}\r\n </Uploader>\r\n )}\r\n\r\n {thumb && (\r\n <Dialog header=\"Thumbnail\" zOffset={1000} onClose={this.handleCloseThumbPreview}>\r\n <Stack space={3} padding={3}>\r\n <Stack space={3}>\r\n <Stack space={2}>\r\n <Text size={1} weight=\"semibold\">\r\n Current:\r\n </Text>\r\n <img\r\n style={{\r\n maxWidth: '100%',\r\n borderRadius: '0.1875rem',\r\n display: 'block',\r\n aspectRatio: cssAspectRatio,\r\n }}\r\n src={this.state.thumb}\r\n width={400}\r\n />\r\n </Stack>\r\n <Stack space={2}>\r\n <Text size={1} weight=\"semibold\">\r\n New:\r\n </Text>\r\n <img\r\n style={{\r\n maxWidth: '100%',\r\n borderRadius: '0.1875rem',\r\n display: 'block',\r\n aspectRatio: cssAspectRatio,\r\n }}\r\n src={this.state.newThumb}\r\n width={400}\r\n />\r\n </Stack>\r\n </Stack>\r\n <Button\r\n key=\"thumbnail\"\r\n mode=\"ghost\"\r\n tone=\"primary\"\r\n disabled={this.state.videoReadyToPlay === false}\r\n onClick={this.handleSetThumbButton}\r\n loading={this.state.thumbLoading}\r\n text=\"Set new thumbnail\"\r\n />\r\n </Stack>\r\n </Dialog>\r\n )}\r\n\r\n {showBrowser && this.renderBrowser()}\r\n\r\n {confirmRemove && (\r\n <Dialog header=\"Remove video\" zOffset={1000} onClose={this.handleCancelRemove}>\r\n <Box padding={4}>\r\n <Stack space={3}>\r\n <Flex align=\"center\">\r\n <Checkbox\r\n checked={this.state.deleteOnMuxChecked}\r\n onChange={this.handleDeleteOnMuxCheckBoxClicked}\r\n />\r\n <Text style={{margin: '0 10px'}}>Delete asset on Mux</Text>\r\n </Flex>\r\n <Flex align=\"center\">\r\n <Checkbox\r\n disabled={this.state.deleteOnMuxChecked}\r\n checked={\r\n this.state.deleteOnMuxChecked || this.state.deleteAssetDocumentChecked\r\n }\r\n onChange={this.handleDeleteAssetDocumentCheckBoxClicked}\r\n />\r\n <Text style={{margin: '0 10px'}}>Delete video from dataset</Text>\r\n </Flex>\r\n <Grid columns={2} gap={2}>\r\n <Button\r\n mode=\"ghost\"\r\n tone=\"default\"\r\n text=\"Cancel\"\r\n onClick={this.handleCancelRemove}\r\n loading={!!isLoading}\r\n />\r\n <Button\r\n mode=\"default\"\r\n tone=\"critical\"\r\n text=\"Remove\"\r\n onClick={this.handleRemoveVideo}\r\n loading={!!isLoading}\r\n />\r\n </Grid>\r\n </Stack>\r\n </Box>\r\n </Dialog>\r\n )}\r\n\r\n {error && this.renderError()}\r\n </Box>\r\n </ThemeProvider>\r\n )\r\n }\r\n }\r\n)\r\n"],"file":"Input.js"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = MuxLogo;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
|
|
12
|
+
function MuxLogo() {
|
|
13
|
+
return /*#__PURE__*/_react.default.createElement("img", {
|
|
14
|
+
srcSet: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKIAAAA0CAYAAAAJzeNFAAAAAXNSR0IArs4c6QAAGIhJREFUeAHtXQmYFEWWfi+r+uA+FLlRsQcPFBgaUEdnbV2lYXQEQRR1VsUDbxxYRkUUWsALRLwAYVlxRB1dvHcYPFhBHWQYDvHgEDmaoxsElUNooKsq3/wvsouuaqoqM6sPdSH6y67MjBcRL1788eLFmUwVnORTc8oMtiMJ1CFLNtPu0hU8j8IVyH6yR8lrX5cidAqR3YQC9D2F7OU8/+sfvTIkeXnZVFryaxI6jmwuRbiVvHDhCq/hq4NO2vdDfoInI+5MsqiQ9u1cymtmH/Calpw8sDlF7BxiakySWUylmd9w4RM7vYavbjrJeSqLSkq7kk0diCM22dZn9O3eJUwFB3HFUSakJzWhjMBIEr6UiJviItyjoHgJbh7mvx743yjtT/ErhCLKO+lWpH07+MrBYwBgssHfWhKZTCXZz/CSJaFUvMmZnS8hDt6P8B0R3MIv8CwliOM9VLVhvHj+16nCV7WfdOh3Inh4GHnJJw7UNjK3RfO0DIU1ile88HaqNKXtwAaUYV+D8GejjOqriHDZkMv3qGRv05rtbzLNjKSKo7r9pNkjPckKjkY6nVHZIHDFlR0Bj5+i9O7mbYMXKA94i/cXUUsUzFvQMF0orIT6uuxX80ZWBFroLv7bvsf1qaad9MzJon3WFBTWNcgA+NOrjEfWXzAZkZdphz2Aly9XLXeIkzNyb6Zg8Bl4BJAXuLL86a8VBCDtIsT5O174yReHBK6GF3Jq3w6Q+d9QMVqiMiAFXNE8EfhBjsiO3M4rXno2UfKSc1V9CmaPBOBOQwZKkQ0AWF1AKxf+UQbie5caRJ7mJVNTVlATrBr+ScuHbgH4nsCVSQLldzB/CqoMPMsussKXcfGQ9y0pQCmyNYECAhDCX2US6zR7gtxZPE7ya98Q61UT95J3XDaV8HNkWdcALMp8fLL6rO+D1pXU2BoY7+k8yVld21OAxyFswCn0ClSooIi/JSKfJDk9syr4VvmjScOyJqFiAYQJhC5aU8ArB8ZK+wFothO4YPYVACGaOtpfDsIoHSMC3o8rn3YG70TTnxn1qalfafHgbSiUp4EdB4RxCWulQ91gbkARnigNCxpatEzbbemd0gp0yt4CZB+QHrX6xcVZjQ+S2wLNVcZ0AzIFWyqnWkX4Duneoc4hZGLfiMpW9xAQxxLCdIFgzqJGe9DMVbOrVfu3Ji0DuCRpaQWzAvVQYNdXpJB2A4+G/stDht3syAPI9wVU2uxOybmj2itYlE9pMWYQccaTpuJHFXXUM/ZXtSRn5FBWw6st0J0HgEFPujgFI3M9/LtOetTt70JdaW/5PUBYv9bz4K0/DHH3+LTgmNpSSQD2Y7nT4sT7LuVvUtwxmgyLuqWgqBovptMBEPe4jPa3ThcqiCcORlqDz3qHasJEUQKsQudDOEOkw9BDK2miIJV4Jy1HDwa4JqCZgnmgoHFzxk4apIXU2I00zl9tEZGrpWf9q+LeV+GDdG9ah/Zkz0Bz2S9hU5o8rSBJBEZ7jMvN1U5N7ZTaMIYcdA1jH6vlXjiex6SJaEFKbcotVpuv3IVDsP9Qct4dNKd9Lu09cI+ceB2USfU4aMKhAOF4pIWK4wWE4MNUNmqBnmMq3ZmAYTYpwJCWP0h+nasTUFTqleQ1qUuh2i9RwOpjbD9/sUHXB/YlCOJRKiakH9oESXl5JXu9UBka5hJaMtWojfIwwe9wX4pC9AFG2IzM3Shcp1rAKK3G3AXFMQ4g1F5gOatud6yK0349XuW7BYr6O2DUBv5K6V7vmujryv7K6Tn1yaqrIOyFXrC/6Jwi2QlbF8MxP3PHtB3C98CkZsrein/xwqgX3AQQroVOdDep4lJBM83chUL1h8Fm9KiV4yJI+CAtR92LeB912IxnNWGAgy9N/qCtg4+lB0SNyICRQ+hNXyH59QYgeQcKBxPxdyPnt21AdSMvI76LfYNQkxL9k9UUjFTQHv74qBFqjvwIXgtTiwzilMhOSHUzUb+4cjLDMRJ4EeH3I9fxzbZ7BrSDk4vWc5i0vbuBO3lyCgicpc0DYykQfBD5AaEfEIKctR7ZE3nboM/jMpg8ySQ+CkahEAzvy6lHg+vSBSOGaBpC6K/AAL8wjeZYmVMJfIVrG4UDfgtGw9esE7RHYq/GtRalAWtP63DMZZ5tNL+yFDmLUIJxCv7mv5YR2xMQVptov3kGGK3OJKXD5bg/pmUTmw5U61GwBzP+hLID/35BiBEl+8CLlL1ruAq/ckDUGAwYoRlRbSm/8Q1+wShnt2lEQftVaMIeaWlCLUihL2HprkOhVD4/mqeacCo3FlQeewEAuRFJYkpOduN+K67P8H4hZIuxQEmaJ141/SOA8HHQpQFGbaapI5TIcGlzTyM/WTYgbCOoBMHBZqA6HRBK6AWqF7yBCwuQx6oAosZyEIzSl3o0GggwJhWekked5LdqTFnyPwBh9/RACENLRGdCAELfWiHKxk/za3q9puJsdzSf/Xcw8gnuAUDZAKHqVJ2qyZSOV09DmMBjIMIwjW8ZaDPdgQKl98nxd2Ja190J9QtQa3kSzeogB4TuYcopkB0OIoulT9FRu27kNYM0feM8ASZKnPJXwUhopm3uQ92PukkKUoNR8locjY7Fa5jxOD89EJrePkAo63H5bZpSZqVGPQVgdOw8lZ+OqkefPbPBXz873+mxqs3oVxasYDiVJFggre9qkSpRaMIgHXvy05gSxXw/+qq+XBkI7dLxtOU//8jLC+KmYqsOiMqUAaNZ0dKbPj3qZumX2JDGOOExmC1REJ6bFgidIafPUYCFaI5/uSD0VZCpiXnVlAWwr8ehDPb5bx0ARubjMc07QtoNb5koJaGBGdQmMhE24S3pgzA8lrfeNRSQ1EoX56oWiE7UmoiO5veiHUfdWhGMBoR24DXoy3PSAqHRGqIg3HAEhHFlSbxm2j8gl7HQCHvxizbQl8PCCT6OQqERcsKQ1rEhpdXgWnRss8lkZQw0c8Sxnq73qgmhK+zQI7x16N3JyKsDiNG0dJ7zItrV5DbJc4SCwepmaEXfwDjhb33OmDhxMnqQIstwAYSJtW008cP1l1c/+08KR0ZDK6Lz4xeMos3lsWQHR2Bop43KUJoU1KVA7RkA0/WVAOGDvOWuYRpfMledQESaOs/JF1Kwyc0AYQ7WO76JjslZaWpCXcOmINx4RBMmK07nPa+b+iXkNAZPP+DyO+itYGwNW3+4HH93R6odeh4dk77pgRDwktADvOXu+xzOkv/3B0SdUvLQk4tLTmCzEPcCCOcChGekBUKjCekzmPKbjoAwTrpJH3jNlBVY6wcwik4H+gSjLiETaMbALLRqlQBhZCQXDytIymSMhz8gMsYLzaIH/PfitFPBWHDA1BVXK9/NsRnY1QWitBTJbUYcRzomXuReRsOrp65CxVfNiCEiz2DEsJFOeVidAEJ0XHSw2o9TaGAhtYSGcPE9o7yG9A5EAz0pgu0xHVpJJ0pThzUgZAVhN9A3gCb15yyT4A8ALwxcnQ4Tv8a3v/T+n1Lz+slfozetYNyGlslNM0JxcCbKGMvmdLtIOiDEolwJ38lFw7EUzLtLDaZD47Fo1r43gcFJ8EoFRhswrQMQYt0d+QehakJbUIsjl1Ao8AriqPEVxodm/Zf7htdNxHSidmDoW+QiGRgBQsFqal27aR2Diu8zwwolDgOEt3HxcAzz+HN+gUjUkzL53d3vYeD/GSSlo//xcZixRKkFpqAJqb7v/JjmWLahFvflD9d/TFkRxHXEVVYCvHbSGvR8RyGeYgCuAhjNUqBslFlXgLCJo2P8pAgIqNlmyy1cdP8UPyGjtPEgir718Muz976POdGnADbV3+XxCNbsM52YFgi1ORbUWuE+/NH6TzywcYTEhwR49YR12Gc1AvJdj/Ipa2XMrkGYUHw6ivHoNEFYSpHITdCE03ywE0daDqC4194e+L29c6AZsTdBd7xgakmXHxDsQuIWeufLGRBKMbYFXMJz1873FfYIsWcJYJyxiOzSUSifNSgn7fwpCLE9grECym+hQXEwxh4j4YFcfP90z0wkIKwUEDU+nr3nQ9SuJ1DLtEetPQxdil5B9StlCueAEAIiaMINZp9rCuojXpWUABdO2kqZoZEorSLMUUMTojPpW3NoUWP1uESu4aKRf64kSzFNaiVi4nd3zkNME1CjdDmYfxDaOFEiYvfmuYULK8HGkaB+JHAgu66jCS2s1E5DE4queohgWM1a6yfZZLSV1ojRiHn2zo8wGq9r43RqyZtzNOEmaMLePG/TYm+BjlBVVgLSZnBbHCeDkzsCHZ1FrX5iVE2IVVZkL8EvZm7s+6RlwXl+YkhEW2VA1Mj5gx3zMYBagNutrrpWQWhj9QxFevHcjZqpw8f52vRUtWKREwbnYNzjHZiHp6W3igatnigIeQsujJHAzrSsO6XF6PMrw2mVAlEZ4Tk7/g6E3QBtvzcpGAMGhOvQJPTiOcVYjVyNbskSNCHgxZmlcU+IdSC3mh1bXpfnQ1DWfpo5U8dsK+2wYeoUtFhvY8akfVog1AlnEbRcgg1dZcvvnO3FAXRaBgGM3dNlssqBqIzweztmAYhXoLZsxJpDyLLs0nu9IvZiCod68f9trvZzZpCaGkDfexMQSIXa4X+1yEV5QNzKUktUDA/gMnP7u8vy4C0LSajkhEG5ED7O2rFOwZk6SaiSvQYHZvsqLUYGMCheBsIouYJRZcZ8u7Qa3SP62s9vtQmc3/8ONoiNRQ40BIPTb+D6EOy+iIGeawHCc3net1/5YbRytAzt68HpsSWM1cq/Oa+1B+r0SE694hgUZhs0bx7QYKaYUPCVc9Lujm5QBtCEfGyamlD3xCyCbJSXZPP9DhiFbwMYf+eX42qdv+X3voMdgd60c/nlrerohZZ7i0x1YbA+lYYvAr3vaSpPaQQPdEGnDsMlZiW7SxAzsLfBhSilt+TccgbSeh0Zw9iuYt9ot5Rhyj1VT5kjSxYDxNiLnRSE0SAOGG3rVpwEZnHRvX+Nerj9VptGdEu4Rv2Zl0Ij69CSu9Oyt2ig5OZiYL5qnTkFLGLno3C1wNwcEINxOjuy1o0wmb/k3HQmDnJ6sxyEySgTvDf7umzsv0ZzbA4E8LwXxsmbyM3S/OFLEsSc8NXhAcTM7atgr36DWp1QCHEvFSNWAGcX1rsl7n1VPNTJuBA2WjsATDtQbg5NIGaa6tQvciNM5I8Tw87GYhuAMIBV8R6sgNhIzE47ex1AqJXmLTTLfiulClGnegfieLorY6NOdn9YAJHnFeLcF3u26TQlk0TsewNGHiFd/+03sa8rcy+n9T0JC03RgdPpUE8OB0rR0nQO2URzfA7mFV5HxWuaHggja9CCXMwbHl5AnKWLW+biwqIIXw5Ni+bV+g9p/sgf3EIeFkB0hGC9itUh3kCgIiSsHOLADOl6bnsnfPr/pf3v22Ct6J+gIXRpnIdm2RyuVAIgfew3VfnVTRegwr2GsOgUeUgqNgFHE642INz4qLGrzQb4zD1q58+BdsyKJfdwHwXjVdJs7NWp6A8fIH66aAmAOA+Dr6nkUe6nhcjcFtcs6XLOBeUe/u6kU+9O2Dr7AAqxBS5vFcFZwPoFLZ/hyz5Ec9wbZsUb4Pno9EAYgQmDYbUNY1fG5pLXPH2A2mborNk7Boz+BuTRRCPfllwJMF4bG2/svcdSiQ3ys7l39JZHdmAdAlmRxwBG72rCIT0WhfuOdD1/nPz6AoDJm5Mz8xtLxwuvQ8FhcYFgkNwcy+IhsNGGYXRS3sIaEs95hCbsAz5fBAhxMq73LBqGVBNSZCVY7MWF41clYpLnFYRpQ3Ay/N4CILGA1vCZiDTBO82HLorh/tJs3AB9qEj0SwOiLsTV3XyaEeewSsHSdE/NHULkL/0AApzlWSuqtLQXLbCPLB6KDeiLpOsFT0pu/rmSm3e09MPxGzFO2ufVlc49OkjnCwfS/gw0ZzicSmzYep46J9GYsFSfP6WVr3wWfeH2KycOxFEGPAN0ddICoUQwphu6mNc9vjpVWkwF2L4WnILKrFoX8vcMRq0ZWL1tVmhdTs3GXVsxnWodR6yYWKWeFXDGbqPjIIRGDjjMRn58yoF0i+ku+B9S02LT5AKIsKsMwychcIY1ptk86xvEomd4M8bi2Bqk01kwl7bS2t2bpHM+dsnpOTU63mFO5gIPnIW4lV89zsOP0+NGcBSdPcOrNpR2N/YH4J9DuFpG6fuZFNItLBLGpvz9/bGdYIMXRhWMUiRTqdVICCSAHX6Y9uOkmjsq4WaQCWQndfCLZPg0aTq+BX3b+hGmy0yX/pcBREFBM2Yj9MAgUxPLRKaaSvfEMLfGmy8hlI1lPkl/eNGi5XJmt/uh4Z5WVefLGe2oclOsWc2Qrl6IJnqBQHgtCNDM4b/P6AEkaM/An/mrlzd54QvHEF+F9KchoWyjuU2iXkKCxoAwhEUqgUu5cCLmjr07rSSyWaZRq1FaO/sZMB5iRhhZBMFfB8TcysjMJGFkh8fgGGpa1FbqPXWrHsb082+awwFklo6CjDvhV5vjeKfgcNZAwp+beDqoc8E/J2G++3mcOBEfl58nA0qwpppSL8cuQxlZOeARY4V+DTWAiWg2rXx5thc2pN31/47C/G/IpQyEXkKV0eh3ZSj8MTRpHy4c5wuE0VSMxt488jmk/yrkDtWaYJCWoTjIAgjVaTFqWeml8kK/zcq8jnZHxuCFHz2u5D+By8SZzMztcMXZY4dwomcjMgAQ0YPEUzvUSZuys+/APosPKgXGRMkoQJkARkzjebVdnab8H1TPnqq6NVG0se/Md1MsGgOZwARwJY8N6mDGjuhhB3157WPb4j39PSmvvGnkdHD8F+RV0Y1XxmkL1gT8AYQKwEQOfKNVh71+hxwzvqNroSWKokbfhW39IgC+MeeSqlMgjTAbCjvE3fG8eXsgKP10xge+Oi/uUaM48Hk2HcfzACq0aDAvBOfV7B/HC2bu8xI9ldY5BYl08a10HZvwQ8o40I9Xj4dtWzXO2SoAE4HNoaKKKd291Lwcl8nS0UK1MDbJQ1WL+AFjFPHJYq769xbpICpqmxsSTdIAQECbOE+OFyz4gfZnXoam9XUHjFWVPcNrXRcmsKgUA8TCc9GFepS/fudHF/py70CgNYDuVSZOOPOZt9AcyuJ+vGqix2Vx5Um63fHm+17HV6SmgU6FiNZLN9F5cDr9iGNNtJeG5d6eXQgn2ai1XoMuuAeJwaDw5ML4+uVuT5RlRLxs3k7KzuiPcbvREGFplWlHp9ecjBW1qbTNeoFOlrG8fKbm0YfDihg/zoAw/C6OnLuMl0/wU95+UsGa7fvexEnLU/wFMpW/WD9rpusE3VemqN5kWsjzPIPCFz9JiQ+UbEC6q6EBkpIYD9N7pXVUy/9mHjTTYV44fwSF7YugpT4zYHRLLyU3htdEe3ew5Va1IH0DG20kf/naSzwzja+HhmQlbC/E7yIT5dEozjA6FHI5b5y8IyXbVeDJxfe+g7w9i2baG3/OyrKnLPRFvwAQ3055kp7mNyL70IxMqgJefUXBCzbjBFQMtbgBQ1eBszzD73+x11cCMcT4TC4GvA/koRMzFK/XO4D0Y7kglKkQNrYmYN+OcxA7GDMnKygAsZcHhZQZuoeXzVwWk7SvW147XTec/cV8VTVVSNWEEnqZSn+8FtN0vlqKVNG6+fHme7ESnO9F4tDcKeRnKkloHWXtw7gpHL7V3ArHxulncnMTfiZX9HQnvpVnlUx1Y6I6/PGxb4yvFU3F9zwGmE6YmmBmUF/Bp1lAZl0+k+uXL505wUzKFYj7KqSVi0IHD5ou/pnfqIAVZ8qD8oJ3OvBuCzYXkQ50AwmMCqxaGrbg3v0f44PgVQIIyRmAoSos/bcyu6DiKGMOD6bgwYcmbYdexIqfG8xcMXxr2knzh/AxzuAkXJAdrKuonIwmx0ETYu/GYpB++plclaBxcjE1hY1ZgBz0QQD0+OBlm/nBJRTGh8PfPYAJ75/OmSOQt7XDrEbgNsj8eABE7VtInwsBjmfx4fAJbh8OT4d7UwlKMjoB6fkA1NlI8WSkieVVFqb9FIwGfBAqWLHlB/h/jndr8LwFvGLqzF5Gv6q1Lq0m2IVhaX9tM4pkPgR+LkXZ1TNlpuUmWMdo02TK3Kb2Z6lLNNXqLS0eupgo8wEkAhmichj+zJ6MT2EKDePtQz5RBsB1vJM+6HaXBjE8EEBvFR/T3hJagW/Yu9uQ8dFU25P5TFpW8FRUlkYo6B2UmbWc5yzR6b0acdIpryE+2N0UPe2W0IA60B403TcL30ix9StR9nb0HnfxF++nbSL4zYicdGM7zMh0hUywQIO/pEDJIl7+fFoD1X7T9kJvzuCOtOyK1qsb6LViLKbiuouYbjqIq38B3fGkjhLeC/4AAAAASUVORK5CYII= 2x",
|
|
15
|
+
src: "data:image/png;base64,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",
|
|
16
|
+
alt: "Mux Logo"
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=MuxLogo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/MuxLogo.js"],"names":["MuxLogo"],"mappings":";;;;;;;AAAA;;;;AAEe,SAASA,OAAT,GAAmB;AAChC,sBACE;AACE,IAAA,MAAM,EAAC,+yQADT;AAEE,IAAA,GAAG,EAAC,g4HAFN;AAGE,IAAA,GAAG,EAAC;AAHN,IADF;AAOD","sourcesContent":["import React from 'react'\r\n\r\nexport default function MuxLogo() {\r\n return (\r\n <img\r\n srcSet=\"data:image/png;base64,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 2x\"\r\n src=\"data:image/png;base64,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\"\r\n alt=\"Mux Logo\"\r\n />\r\n )\r\n}\r\n"],"file":"MuxLogo.js"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _preview = require("part:@sanity/base/preview");
|
|
9
|
+
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
|
|
12
|
+
var _react = _interopRequireDefault(require("react"));
|
|
13
|
+
|
|
14
|
+
var _secrets = require("../actions/secrets");
|
|
15
|
+
|
|
16
|
+
var _getPosterSrc = _interopRequireDefault(require("../util/getPosterSrc"));
|
|
17
|
+
|
|
18
|
+
var _Preview = _interopRequireDefault(require("./Preview.css"));
|
|
19
|
+
|
|
20
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
|
+
|
|
22
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
23
|
+
|
|
24
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
25
|
+
|
|
26
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
27
|
+
|
|
28
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
29
|
+
|
|
30
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
31
|
+
|
|
32
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
33
|
+
|
|
34
|
+
var MuxVideoPreview = props => {
|
|
35
|
+
var _React$useState = _react.default.useState(undefined),
|
|
36
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
37
|
+
secrets = _React$useState2[0],
|
|
38
|
+
setSecrets = _React$useState2[1];
|
|
39
|
+
|
|
40
|
+
var _React$useState3 = _react.default.useState(undefined),
|
|
41
|
+
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
42
|
+
posterSrc = _React$useState4[0],
|
|
43
|
+
setPosterSrc = _React$useState4[1];
|
|
44
|
+
|
|
45
|
+
_react.default.useEffect(() => {
|
|
46
|
+
(0, _secrets.fetchSecrets)().then(data => setSecrets(data.secrets));
|
|
47
|
+
}, []);
|
|
48
|
+
|
|
49
|
+
_react.default.useEffect(() => {
|
|
50
|
+
if (props.value === null || secrets === undefined) return;
|
|
51
|
+
if (props.value.status !== 'ready') return;
|
|
52
|
+
var signingKeyId = secrets.signingKeyId,
|
|
53
|
+
signingKeyPrivate = secrets.signingKeyPrivate;
|
|
54
|
+
var playbackId = props.value.playbackIds[0];
|
|
55
|
+
setPosterSrc((0, _getPosterSrc.default)(playbackId.id, {
|
|
56
|
+
time: props.value.thumbTime,
|
|
57
|
+
fitMode: 'crop',
|
|
58
|
+
width: 640,
|
|
59
|
+
height: 360,
|
|
60
|
+
isSigned: playbackId.policy === 'signed',
|
|
61
|
+
signingKeyId,
|
|
62
|
+
signingKeyPrivate
|
|
63
|
+
}));
|
|
64
|
+
}, [props.value, secrets]);
|
|
65
|
+
|
|
66
|
+
if (!props.value) return null;
|
|
67
|
+
|
|
68
|
+
if (posterSrc !== undefined) {
|
|
69
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
70
|
+
className: _Preview.default.poster,
|
|
71
|
+
style: {
|
|
72
|
+
backgroundImage: "url(".concat(posterSrc, ")")
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
var _props$value = props.value,
|
|
78
|
+
filename = _props$value.filename,
|
|
79
|
+
playbackId = _props$value.playbackId,
|
|
80
|
+
status = _props$value.status;
|
|
81
|
+
return /*#__PURE__*/_react.default.createElement(_preview.SanityDefaultPreview, {
|
|
82
|
+
title: filename || playbackId || '',
|
|
83
|
+
subtitle: status ? "status: ".concat(status) : null
|
|
84
|
+
});
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
MuxVideoPreview.propTypes = {
|
|
88
|
+
value: _propTypes.default.object
|
|
89
|
+
};
|
|
90
|
+
MuxVideoPreview.defaultProps = {
|
|
91
|
+
value: null
|
|
92
|
+
};
|
|
93
|
+
var _default = MuxVideoPreview;
|
|
94
|
+
exports.default = _default;
|
|
95
|
+
//# sourceMappingURL=Preview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/Preview.js"],"names":["MuxVideoPreview","props","React","useState","undefined","secrets","setSecrets","posterSrc","setPosterSrc","useEffect","then","data","value","status","signingKeyId","signingKeyPrivate","playbackId","playbackIds","id","time","thumbTime","fitMode","width","height","isSigned","policy","styles","poster","backgroundImage","filename","propTypes","PropTypes","object","defaultProps"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;AAEA,IAAMA,eAAe,GAAIC,KAAD,IAAW;AACjC,wBAA8BC,eAAMC,QAAN,CAAeC,SAAf,CAA9B;AAAA;AAAA,MAAOC,OAAP;AAAA,MAAgBC,UAAhB;;AACA,yBAAkCJ,eAAMC,QAAN,CAAeC,SAAf,CAAlC;AAAA;AAAA,MAAOG,SAAP;AAAA,MAAkBC,YAAlB;;AAEAN,iBAAMO,SAAN,CAAgB,MAAM;AACpB,iCAAeC,IAAf,CAAqBC,IAAD,IAAUL,UAAU,CAACK,IAAI,CAACN,OAAN,CAAxC;AACD,GAFD,EAEG,EAFH;;AAIAH,iBAAMO,SAAN,CAAgB,MAAM;AACpB,QAAIR,KAAK,CAACW,KAAN,KAAgB,IAAhB,IAAwBP,OAAO,KAAKD,SAAxC,EAAmD;AAEnD,QAAIH,KAAK,CAACW,KAAN,CAAYC,MAAZ,KAAuB,OAA3B,EAAoC;AAEpC,QAAOC,YAAP,GAA0CT,OAA1C,CAAOS,YAAP;AAAA,QAAqBC,iBAArB,GAA0CV,OAA1C,CAAqBU,iBAArB;AACA,QAAMC,UAAU,GAAGf,KAAK,CAACW,KAAN,CAAYK,WAAZ,CAAwB,CAAxB,CAAnB;AAEAT,IAAAA,YAAY,CACV,2BAAaQ,UAAU,CAACE,EAAxB,EAA4B;AAC1BC,MAAAA,IAAI,EAAElB,KAAK,CAACW,KAAN,CAAYQ,SADQ;AAE1BC,MAAAA,OAAO,EAAE,MAFiB;AAG1BC,MAAAA,KAAK,EAAE,GAHmB;AAI1BC,MAAAA,MAAM,EAAE,GAJkB;AAK1BC,MAAAA,QAAQ,EAAER,UAAU,CAACS,MAAX,KAAsB,QALN;AAM1BX,MAAAA,YAN0B;AAO1BC,MAAAA;AAP0B,KAA5B,CADU,CAAZ;AAWD,GAnBD,EAmBG,CAACd,KAAK,CAACW,KAAP,EAAcP,OAAd,CAnBH;;AAqBA,MAAI,CAACJ,KAAK,CAACW,KAAX,EAAkB,OAAO,IAAP;;AAElB,MAAIL,SAAS,KAAKH,SAAlB,EAA6B;AAC3B,wBAAO;AAAK,MAAA,SAAS,EAAEsB,iBAAOC,MAAvB;AAA+B,MAAA,KAAK,EAAE;AAACC,QAAAA,eAAe,gBAASrB,SAAT;AAAhB;AAAtC,MAAP;AACD;;AAED,qBAAuCN,KAAK,CAACW,KAA7C;AAAA,MAAOiB,QAAP,gBAAOA,QAAP;AAAA,MAAiBb,UAAjB,gBAAiBA,UAAjB;AAAA,MAA6BH,MAA7B,gBAA6BA,MAA7B;AAEA,sBACE,6BAAC,6BAAD;AACE,IAAA,KAAK,EAAEgB,QAAQ,IAAIb,UAAZ,IAA0B,EADnC;AAEE,IAAA,QAAQ,EAAEH,MAAM,qBAAcA,MAAd,IAAyB;AAF3C,IADF;AAMD,CA3CD;;AA6CAb,eAAe,CAAC8B,SAAhB,GAA4B;AAC1BlB,EAAAA,KAAK,EAAEmB,mBAAUC;AADS,CAA5B;AAIAhC,eAAe,CAACiC,YAAhB,GAA+B;AAC7BrB,EAAAA,KAAK,EAAE;AADsB,CAA/B;eAIeZ,e","sourcesContent":["import {SanityDefaultPreview} from 'part:@sanity/base/preview'\r\nimport PropTypes from 'prop-types'\r\nimport React from 'react'\r\nimport {fetchSecrets} from '../actions/secrets'\r\nimport getPosterSrc from '../util/getPosterSrc'\r\nimport styles from './Preview.css'\r\n\r\nconst MuxVideoPreview = (props) => {\r\n const [secrets, setSecrets] = React.useState(undefined)\r\n const [posterSrc, setPosterSrc] = React.useState(undefined)\r\n\r\n React.useEffect(() => {\r\n fetchSecrets().then((data) => setSecrets(data.secrets))\r\n }, [])\r\n\r\n React.useEffect(() => {\r\n if (props.value === null || secrets === undefined) return\r\n\r\n if (props.value.status !== 'ready') return\r\n\r\n const {signingKeyId, signingKeyPrivate} = secrets\r\n const playbackId = props.value.playbackIds[0]\r\n\r\n setPosterSrc(\r\n getPosterSrc(playbackId.id, {\r\n time: props.value.thumbTime,\r\n fitMode: 'crop',\r\n width: 640,\r\n height: 360,\r\n isSigned: playbackId.policy === 'signed',\r\n signingKeyId,\r\n signingKeyPrivate,\r\n })\r\n )\r\n }, [props.value, secrets])\r\n\r\n if (!props.value) return null\r\n\r\n if (posterSrc !== undefined) {\r\n return <div className={styles.poster} style={{backgroundImage: `url(${posterSrc})`}} />\r\n }\r\n\r\n const {filename, playbackId, status} = props.value\r\n\r\n return (\r\n <SanityDefaultPreview\r\n title={filename || playbackId || ''}\r\n subtitle={status ? `status: ${status}` : null}\r\n />\r\n )\r\n}\r\n\r\nMuxVideoPreview.propTypes = {\r\n value: PropTypes.object,\r\n}\r\n\r\nMuxVideoPreview.defaultProps = {\r\n value: null,\r\n}\r\n\r\nexport default MuxVideoPreview\r\n"],"file":"Preview.js"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
@import 'part:@sanity/base/theme/variables-style';
|
|
2
|
+
|
|
3
|
+
.root {
|
|
4
|
+
display: block;
|
|
5
|
+
position: relative;
|
|
6
|
+
min-height: 100vh;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.imageList {
|
|
10
|
+
margin: 0;
|
|
11
|
+
padding: 0;
|
|
12
|
+
display: flex;
|
|
13
|
+
flex-wrap: wrap;
|
|
14
|
+
margin: 0 -0.25rem;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.imageList::after {
|
|
18
|
+
content: '';
|
|
19
|
+
flex-grow: 999999999;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.padder {
|
|
23
|
+
display: block;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.image {
|
|
27
|
+
position: absolute;
|
|
28
|
+
top: 0;
|
|
29
|
+
width: 100%;
|
|
30
|
+
height: 100%;
|
|
31
|
+
vertical-align: bottom;
|
|
32
|
+
box-sizing: border-box;
|
|
33
|
+
background-color: var(--component-bg);
|
|
34
|
+
object-fit: cover;
|
|
35
|
+
border-radius: 0.1875rem;
|
|
36
|
+
transition: all 0.25s ease-in-out;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.image:hover {
|
|
40
|
+
transform: scale(1.05);
|
|
41
|
+
transition: all 0.25s ease-in-out;
|
|
42
|
+
cursor: pointer;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.item {
|
|
46
|
+
background-color: var(--gray-lighter);
|
|
47
|
+
composes: listItemStates from 'part:@sanity/base/theme/layout/backgrounds-style';
|
|
48
|
+
display: block;
|
|
49
|
+
margin: calc(var(--small-padding) / 2);
|
|
50
|
+
position: relative;
|
|
51
|
+
overflow: hidden;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.loadMore {
|
|
55
|
+
margin: var(--medium-padding) 0;
|
|
56
|
+
}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _ui = require("@sanity/ui");
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
12
|
+
var _secrets = require("../actions/secrets");
|
|
13
|
+
|
|
14
|
+
var _SanityClient = _interopRequireDefault(require("../clients/SanityClient"));
|
|
15
|
+
|
|
16
|
+
var _getPosterSrc = _interopRequireDefault(require("../util/getPosterSrc"));
|
|
17
|
+
|
|
18
|
+
var _SelectAsset = _interopRequireDefault(require("./SelectAsset.css"));
|
|
19
|
+
|
|
20
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
|
+
|
|
22
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
23
|
+
|
|
24
|
+
var PER_PAGE = 200;
|
|
25
|
+
|
|
26
|
+
function createQuery() {
|
|
27
|
+
var start = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
28
|
+
var end = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : PER_PAGE;
|
|
29
|
+
return "*[_type == \"mux.videoAsset\"] | order(_updatedAt desc) [".concat(start, "...").concat(end, "] {_id, playbackId, thumbTime, data}");
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
class SelectAsset extends _react.default.Component {
|
|
33
|
+
constructor(props) {
|
|
34
|
+
super(props);
|
|
35
|
+
|
|
36
|
+
_defineProperty(this, "pageNo", 0);
|
|
37
|
+
|
|
38
|
+
_defineProperty(this, "handleItemClick", event => {
|
|
39
|
+
event.preventDefault();
|
|
40
|
+
this.select(event.currentTarget.getAttribute('data-id'));
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
_defineProperty(this, "handleItemKeyPress", event => {
|
|
44
|
+
if (event.key === 'Enter') {
|
|
45
|
+
event.preventDefault();
|
|
46
|
+
this.select(event.currentTarget.getAttribute('data-id'));
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
_defineProperty(this, "handleFetchNextPage", () => {
|
|
51
|
+
this.fetchPage(++this.pageNo);
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
_defineProperty(this, "handleImageError", event => {
|
|
55
|
+
var imageElm = event.currentTarget;
|
|
56
|
+
imageElm.src = 'data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzMwMHB4JyB3aWR0aD0nMzAwcHgnICBmaWxsPSIjMDAwMDAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgNDggNDgiIHZlcnNpb249IjEuMSIgeD0iMHB4IiB5PSIwcHgiPjx0aXRsZT5JY29ucyAvIEdlbmVyYWwgLyBMYXJnZSAvIFVua25vd248L3RpdGxlPjxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPjxnIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxnPjxwYXRoIGQ9Ik0yOS42MTQ1OTYxLDYuNSBMMzcuNSwxNC4zMjUwNjUgTDM3LjUsMzkuMzI2NDQ0NyBDMzcuNSw0MC41Mjk0ODk3IDM2LjUzMDMzNjYsNDEuNSAzNS4zMjM3MzA1LDQxLjUgTDExLjY3NjI2OTUsNDEuNSBDMTAuNDc0MTY5Niw0MS41IDkuNSw0MC41MjU4OTM3IDkuNSwzOS4zMjM1NjAxIEw5LjUsOC42NzY0Mzk5MiBDOS41LDcuNDc1MjA3OTYgMTAuNDY5NTU4MSw2LjUgMTEuNjU4MDg4Nyw2LjUgTDI5LjYxNDU5NjEsNi41IFoiIHN0cm9rZT0iIzAwMDAwMCI+PC9wYXRoPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iMjkgOCAzNSAxNCAyOSAxNCI+PC9wb2x5Z29uPjxwYXRoIGQ9Ik0yMS40NTY1NzU5LDI4LjkwMTg1NjggQzIxLjQ1NjU3NTksMjguNTk0MTYyOSAyMS41NjA5NzA4LDI4LjMzNDIxODYgMjEuNzY5NzYzNywyOC4xMjIwMTU5IEMyMS45Nzg1NTY2LDI3LjkwOTgxMzMgMjIuMjMxNzE0MiwyNy44MDM3MTM1IDIyLjUyOTI0NDEsMjcuODAzNzEzNSBDMjIuODI2Nzc0LDI3LjgwMzcxMzUgMjMuMDc5OTMxNiwyNy45MDk4MTMzIDIzLjI4ODcyNDUsMjguMTIyMDE1OSBDMjMuNDk3NTE3NCwyOC4zMzQyMTg2IDIzLjYwMTkxMjMsMjguNTk0MTYyOSAyMy42MDE5MTIzLDI4LjkwMTg1NjggQzIzLjYwMTkxMjMsMjkuMjA5NTUwNiAyMy40OTc1MTc0LDI5LjQ2OTQ5NSAyMy4yODg3MjQ1LDI5LjY4MTY5NzYgQzIzLjA3OTkzMTYsMjkuODkzOTAwMyAyMi44MjY3NzQsMzAgMjIuNTI5MjQ0MSwzMCBDMjIuMjMxNzE0MiwzMCAyMS45Nzg1NTY2LDI5Ljg5MzkwMDMgMjEuNzY5NzYzNywyOS42ODE2OTc2IEMyMS41NjA5NzA4LDI5LjQ2OTQ5NSAyMS40NTY1NzU5LDI5LjIwOTU1MDYgMjEuNDU2NTc1OSwyOC45MDE4NTY4IFogTTIwLjkzOTgxNiwxOC45MDcxNjE4IEMyMS41NzY2MzQ0LDE4LjMwMjM4NDIgMjIuNDI0ODQyOSwxOCAyMy40ODQ0NjY5LDE4IEMyNC41NDQwOTA5LDE4IDI1LjM5NDkwOTMsMTguMjk3MDc5MyAyNi4wMzY5NDc1LDE4Ljg5MTI0NjcgQzI2LjY3ODk4NTcsMTkuNDg1NDE0MSAyNywyMC4zMjYyNTQ1IDI3LDIxLjQxMzc5MzEgQzI3LDIyLjUwMTMzMTcgMjYuNjkyMDM1MSwyMy4yOTQ0MjcyIDI2LjA3NjA5NiwyMy43OTMxMDM0IEMyNS40NjAxNTY5LDI0LjI5MTc3OTcgMjQuNTQ2NzAxNiwyNC41NDY0MTkgMjMuMzM1NzAyNywyNC41NTcwMjkyIEwyMy4zMzU3MDI3LDI2LjQ5ODY3MzcgTDIxLjY0NDQ4ODUsMjYuNDk4NjczNyBMMjEuNjQ0NDg4NSwyMy4zMTU2NDk5IEwyMi4zOTYxMzkzLDIzLjMxNTY0OTkgQzIzLjM3NzQ2NiwyMy4zMjYyNiAyNC4xMDU2MjAzLDIzLjE5NjI4NzggMjQuNTgwNjI0MiwyMi45MjU3Mjk0IEMyNS4wNTU2MjgxLDIyLjY1NTE3MTEgMjUuMjkzMTI2NSwyMi4xMjIwMTk5IDI1LjI5MzEyNjUsMjEuMzI2MjU5OSBDMjUuMjkzMTI2NSwyMC43NjM5MjI5IDI1LjEzMzkyNDMsMjAuMzIzNjA5IDI0LjgxNTUxNTEsMjAuMDA1MzA1IEMyNC40OTcxMDU5LDE5LjY4NzAwMTEgMjQuMDU2MDM3NSwxOS41Mjc4NTE1IDIzLjQ5MjI5NjYsMTkuNTI3ODUxNSBDMjIuOTI4NTU1NywxOS41Mjc4NTE1IDIyLjQ4NDg3NzQsMTkuNjgxNjk2MSAyMi4xNjEyNDg0LDE5Ljk4OTM4OTkgQzIxLjgzNzYxOTQsMjAuMjk3MDgzOCAyMS42NzU4MDczLDIwLjcyNjc4NzcgMjEuNjc1ODA3MywyMS4yNzg1MTQ2IEwyMC4wMDAyNTI2LDIxLjI3ODUxNDYgQzE5Ljk4OTgxMjksMjAuMzAyMzgyNCAyMC4zMDI5OTc2LDE5LjUxMTkzOTQgMjAuOTM5ODE2LDE4LjkwNzE2MTggWiIgZmlsbD0iIzAwMDAwMCI+PC9wYXRoPjwvZz48L2c+PC9zdmc+';
|
|
57
|
+
imageElm.width = 100;
|
|
58
|
+
imageElm.height = 100;
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
this.state = {
|
|
62
|
+
assets: [],
|
|
63
|
+
isLastPage: false,
|
|
64
|
+
isLoading: false,
|
|
65
|
+
secrets: null
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
fetchPage(pageNo) {
|
|
70
|
+
var start = pageNo * PER_PAGE;
|
|
71
|
+
var end = start + PER_PAGE;
|
|
72
|
+
this.setState({
|
|
73
|
+
isLoading: true
|
|
74
|
+
});
|
|
75
|
+
return _SanityClient.default.fetch(createQuery(start, end)).then(result => {
|
|
76
|
+
this.setState(prevState => ({
|
|
77
|
+
isLastPage: result.length === 0,
|
|
78
|
+
assets: prevState.assets.concat(result),
|
|
79
|
+
isLoading: false
|
|
80
|
+
}));
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
componentDidMount() {
|
|
85
|
+
this.fetchPage(this.pageNo);
|
|
86
|
+
(0, _secrets.fetchSecrets)().then(_ref => {
|
|
87
|
+
var secrets = _ref.secrets;
|
|
88
|
+
return this.setState({
|
|
89
|
+
secrets
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
select(id) {
|
|
95
|
+
var selected = this.state.assets.find(doc => doc._id === id);
|
|
96
|
+
|
|
97
|
+
if (selected) {
|
|
98
|
+
this.props.onSelect(selected);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
render() {
|
|
103
|
+
var _this$state = this.state,
|
|
104
|
+
assets = _this$state.assets,
|
|
105
|
+
isLastPage = _this$state.isLastPage,
|
|
106
|
+
isLoading = _this$state.isLoading,
|
|
107
|
+
secrets = _this$state.secrets;
|
|
108
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
109
|
+
className: _SelectAsset.default.root
|
|
110
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
111
|
+
className: _SelectAsset.default.imageList
|
|
112
|
+
}, assets.map(asset => {
|
|
113
|
+
var size = 80;
|
|
114
|
+
var width = 100;
|
|
115
|
+
var height = 100;
|
|
116
|
+
var posterUrl = (0, _getPosterSrc.default)(asset.playbackId, {
|
|
117
|
+
time: asset.thumbTime || 1,
|
|
118
|
+
// eslint-disable-next-line camelcase
|
|
119
|
+
fit_mode: 'smartcrop',
|
|
120
|
+
width: 100,
|
|
121
|
+
height: 100,
|
|
122
|
+
isSigned: asset.data && asset.data.playback_ids[0].policy === 'signed',
|
|
123
|
+
signingKeyId: secrets.signingKeyId || null,
|
|
124
|
+
signingKeyPrivate: secrets.signingKeyPrivate || null
|
|
125
|
+
});
|
|
126
|
+
return /*#__PURE__*/_react.default.createElement("a", {
|
|
127
|
+
key: asset._id,
|
|
128
|
+
className: _SelectAsset.default.item,
|
|
129
|
+
"data-id": asset._id,
|
|
130
|
+
onClick: this.handleItemClick,
|
|
131
|
+
onKeyPress: this.handleItemKeyPress,
|
|
132
|
+
tabIndex: 0,
|
|
133
|
+
style: {
|
|
134
|
+
width: "".concat(width * size / height, "px"),
|
|
135
|
+
flexGrow: "".concat(width * size / height)
|
|
136
|
+
}
|
|
137
|
+
}, /*#__PURE__*/_react.default.createElement("i", {
|
|
138
|
+
className: _SelectAsset.default.padder,
|
|
139
|
+
style: {
|
|
140
|
+
paddingBottom: "".concat(height / width * 100, "%")
|
|
141
|
+
}
|
|
142
|
+
}), /*#__PURE__*/_react.default.createElement("img", {
|
|
143
|
+
onError: this.handleImageError,
|
|
144
|
+
src: posterUrl,
|
|
145
|
+
className: _SelectAsset.default.image,
|
|
146
|
+
title: asset.filename || asset.playbackId
|
|
147
|
+
}));
|
|
148
|
+
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
149
|
+
className: _SelectAsset.default.loadMore
|
|
150
|
+
}, !isLastPage && /*#__PURE__*/_react.default.createElement(_ui.Button, {
|
|
151
|
+
text: "Load more",
|
|
152
|
+
mode: "ghost",
|
|
153
|
+
tone: "primary",
|
|
154
|
+
onClick: this.handleFetchNextPage,
|
|
155
|
+
loading: isLoading
|
|
156
|
+
})));
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
exports.default = SelectAsset;
|
|
162
|
+
//# sourceMappingURL=SelectAsset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/SelectAsset.js"],"names":["PER_PAGE","createQuery","start","end","SelectAsset","React","Component","constructor","props","event","preventDefault","select","currentTarget","getAttribute","key","fetchPage","pageNo","imageElm","src","width","height","state","assets","isLastPage","isLoading","secrets","setState","client","fetch","then","result","prevState","length","concat","componentDidMount","id","selected","find","doc","_id","onSelect","render","styles","root","imageList","map","asset","size","posterUrl","playbackId","time","thumbTime","fit_mode","isSigned","data","playback_ids","policy","signingKeyId","signingKeyPrivate","item","handleItemClick","handleItemKeyPress","flexGrow","padder","paddingBottom","handleImageError","image","filename","loadMore","handleFetchNextPage"],"mappings":"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","sourcesContent":["import {Button} from '@sanity/ui'\r\nimport React from 'react'\r\nimport {fetchSecrets} from '../actions/secrets'\r\nimport client from '../clients/SanityClient'\r\nimport getPosterSrc from '../util/getPosterSrc'\r\nimport styles from './SelectAsset.css'\r\n\r\nconst PER_PAGE = 200\r\n\r\nfunction createQuery(start = 0, end = PER_PAGE) {\r\n return `*[_type == \"mux.videoAsset\"] | order(_updatedAt desc) [${start}...${end}] {_id, playbackId, thumbTime, data}`\r\n}\r\n\r\nexport default class SelectAsset extends React.Component {\r\n pageNo = 0\r\n\r\n constructor(props) {\r\n super(props)\r\n\r\n this.state = {\r\n assets: [],\r\n isLastPage: false,\r\n isLoading: false,\r\n secrets: null,\r\n }\r\n }\r\n\r\n fetchPage(pageNo) {\r\n const start = pageNo * PER_PAGE\r\n const end = start + PER_PAGE\r\n this.setState({isLoading: true})\r\n return client.fetch(createQuery(start, end)).then((result) => {\r\n this.setState((prevState) => ({\r\n isLastPage: result.length === 0,\r\n assets: prevState.assets.concat(result),\r\n isLoading: false,\r\n }))\r\n })\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchPage(this.pageNo)\r\n fetchSecrets().then(({secrets}) => this.setState({secrets}))\r\n }\r\n\r\n select(id) {\r\n const selected = this.state.assets.find((doc) => doc._id === id)\r\n if (selected) {\r\n this.props.onSelect(selected)\r\n }\r\n }\r\n\r\n handleItemClick = (event) => {\r\n event.preventDefault()\r\n this.select(event.currentTarget.getAttribute('data-id'))\r\n }\r\n\r\n handleItemKeyPress = (event) => {\r\n if (event.key === 'Enter') {\r\n event.preventDefault()\r\n this.select(event.currentTarget.getAttribute('data-id'))\r\n }\r\n }\r\n handleFetchNextPage = () => {\r\n this.fetchPage(++this.pageNo)\r\n }\r\n\r\n handleImageError = (event) => {\r\n const imageElm = event.currentTarget\r\n imageElm.src =\r\n 'data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzMwMHB4JyB3aWR0aD0nMzAwcHgnICBmaWxsPSIjMDAwMDAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgNDggNDgiIHZlcnNpb249IjEuMSIgeD0iMHB4IiB5PSIwcHgiPjx0aXRsZT5JY29ucyAvIEdlbmVyYWwgLyBMYXJnZSAvIFVua25vd248L3RpdGxlPjxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPjxnIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxnPjxwYXRoIGQ9Ik0yOS42MTQ1OTYxLDYuNSBMMzcuNSwxNC4zMjUwNjUgTDM3LjUsMzkuMzI2NDQ0NyBDMzcuNSw0MC41Mjk0ODk3IDM2LjUzMDMzNjYsNDEuNSAzNS4zMjM3MzA1LDQxLjUgTDExLjY3NjI2OTUsNDEuNSBDMTAuNDc0MTY5Niw0MS41IDkuNSw0MC41MjU4OTM3IDkuNSwzOS4zMjM1NjAxIEw5LjUsOC42NzY0Mzk5MiBDOS41LDcuNDc1MjA3OTYgMTAuNDY5NTU4MSw2LjUgMTEuNjU4MDg4Nyw2LjUgTDI5LjYxNDU5NjEsNi41IFoiIHN0cm9rZT0iIzAwMDAwMCI+PC9wYXRoPjxwb2x5Z29uIGZpbGw9IiMwMDAwMDAiIHBvaW50cz0iMjkgOCAzNSAxNCAyOSAxNCI+PC9wb2x5Z29uPjxwYXRoIGQ9Ik0yMS40NTY1NzU5LDI4LjkwMTg1NjggQzIxLjQ1NjU3NTksMjguNTk0MTYyOSAyMS41NjA5NzA4LDI4LjMzNDIxODYgMjEuNzY5NzYzNywyOC4xMjIwMTU5IEMyMS45Nzg1NTY2LDI3LjkwOTgxMzMgMjIuMjMxNzE0MiwyNy44MDM3MTM1IDIyLjUyOTI0NDEsMjcuODAzNzEzNSBDMjIuODI2Nzc0LDI3LjgwMzcxMzUgMjMuMDc5OTMxNiwyNy45MDk4MTMzIDIzLjI4ODcyNDUsMjguMTIyMDE1OSBDMjMuNDk3NTE3NCwyOC4zMzQyMTg2IDIzLjYwMTkxMjMsMjguNTk0MTYyOSAyMy42MDE5MTIzLDI4LjkwMTg1NjggQzIzLjYwMTkxMjMsMjkuMjA5NTUwNiAyMy40OTc1MTc0LDI5LjQ2OTQ5NSAyMy4yODg3MjQ1LDI5LjY4MTY5NzYgQzIzLjA3OTkzMTYsMjkuODkzOTAwMyAyMi44MjY3NzQsMzAgMjIuNTI5MjQ0MSwzMCBDMjIuMjMxNzE0MiwzMCAyMS45Nzg1NTY2LDI5Ljg5MzkwMDMgMjEuNzY5NzYzNywyOS42ODE2OTc2IEMyMS41NjA5NzA4LDI5LjQ2OTQ5NSAyMS40NTY1NzU5LDI5LjIwOTU1MDYgMjEuNDU2NTc1OSwyOC45MDE4NTY4IFogTTIwLjkzOTgxNiwxOC45MDcxNjE4IEMyMS41NzY2MzQ0LDE4LjMwMjM4NDIgMjIuNDI0ODQyOSwxOCAyMy40ODQ0NjY5LDE4IEMyNC41NDQwOTA5LDE4IDI1LjM5NDkwOTMsMTguMjk3MDc5MyAyNi4wMzY5NDc1LDE4Ljg5MTI0NjcgQzI2LjY3ODk4NTcsMTkuNDg1NDE0MSAyNywyMC4zMjYyNTQ1IDI3LDIxLjQxMzc5MzEgQzI3LDIyLjUwMTMzMTcgMjYuNjkyMDM1MSwyMy4yOTQ0MjcyIDI2LjA3NjA5NiwyMy43OTMxMDM0IEMyNS40NjAxNTY5LDI0LjI5MTc3OTcgMjQuNTQ2NzAxNiwyNC41NDY0MTkgMjMuMzM1NzAyNywyNC41NTcwMjkyIEwyMy4zMzU3MDI3LDI2LjQ5ODY3MzcgTDIxLjY0NDQ4ODUsMjYuNDk4NjczNyBMMjEuNjQ0NDg4NSwyMy4zMTU2NDk5IEwyMi4zOTYxMzkzLDIzLjMxNTY0OTkgQzIzLjM3NzQ2NiwyMy4zMjYyNiAyNC4xMDU2MjAzLDIzLjE5NjI4NzggMjQuNTgwNjI0MiwyMi45MjU3Mjk0IEMyNS4wNTU2MjgxLDIyLjY1NTE3MTEgMjUuMjkzMTI2NSwyMi4xMjIwMTk5IDI1LjI5MzEyNjUsMjEuMzI2MjU5OSBDMjUuMjkzMTI2NSwyMC43NjM5MjI5IDI1LjEzMzkyNDMsMjAuMzIzNjA5IDI0LjgxNTUxNTEsMjAuMDA1MzA1IEMyNC40OTcxMDU5LDE5LjY4NzAwMTEgMjQuMDU2MDM3NSwxOS41Mjc4NTE1IDIzLjQ5MjI5NjYsMTkuNTI3ODUxNSBDMjIuOTI4NTU1NywxOS41Mjc4NTE1IDIyLjQ4NDg3NzQsMTkuNjgxNjk2MSAyMi4xNjEyNDg0LDE5Ljk4OTM4OTkgQzIxLjgzNzYxOTQsMjAuMjk3MDgzOCAyMS42NzU4MDczLDIwLjcyNjc4NzcgMjEuNjc1ODA3MywyMS4yNzg1MTQ2IEwyMC4wMDAyNTI2LDIxLjI3ODUxNDYgQzE5Ljk4OTgxMjksMjAuMzAyMzgyNCAyMC4zMDI5OTc2LDE5LjUxMTkzOTQgMjAuOTM5ODE2LDE4LjkwNzE2MTggWiIgZmlsbD0iIzAwMDAwMCI+PC9wYXRoPjwvZz48L2c+PC9zdmc+'\r\n imageElm.width = 100\r\n imageElm.height = 100\r\n }\r\n\r\n render() {\r\n const {assets, isLastPage, isLoading, secrets} = this.state\r\n\r\n return (\r\n <div className={styles.root}>\r\n <div className={styles.imageList}>\r\n {assets.map((asset) => {\r\n const size = 80\r\n const width = 100\r\n const height = 100\r\n const posterUrl = getPosterSrc(asset.playbackId, {\r\n time: asset.thumbTime || 1,\r\n // eslint-disable-next-line camelcase\r\n fit_mode: 'smartcrop',\r\n width: 100,\r\n height: 100,\r\n isSigned: asset.data && asset.data.playback_ids[0].policy === 'signed',\r\n signingKeyId: secrets.signingKeyId || null,\r\n signingKeyPrivate: secrets.signingKeyPrivate || null,\r\n })\r\n return (\r\n <a\r\n key={asset._id}\r\n className={styles.item}\r\n data-id={asset._id}\r\n onClick={this.handleItemClick}\r\n onKeyPress={this.handleItemKeyPress}\r\n tabIndex={0}\r\n style={{\r\n width: `${(width * size) / height}px`,\r\n flexGrow: `${(width * size) / height}`,\r\n }}\r\n >\r\n <i\r\n className={styles.padder}\r\n style={{paddingBottom: `${(height / width) * 100}%`}}\r\n />\r\n <img\r\n onError={this.handleImageError}\r\n src={posterUrl}\r\n className={styles.image}\r\n title={asset.filename || asset.playbackId}\r\n />\r\n </a>\r\n )\r\n })}\r\n </div>\r\n <div className={styles.loadMore}>\r\n {!isLastPage && (\r\n <Button\r\n text=\"Load more\"\r\n mode=\"ghost\"\r\n tone=\"primary\"\r\n onClick={this.handleFetchNextPage}\r\n loading={isLoading}\r\n />\r\n )}\r\n </div>\r\n </div>\r\n )\r\n }\r\n}\r\n"],"file":"SelectAsset.js"}
|