Skip to content

Commit

Permalink
Fixed Link media functionality (#2377)
Browse files Browse the repository at this point in the history
  • Loading branch information
jsorohova authored Jan 25, 2024
1 parent 3e2d250 commit b32da31
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 10 deletions.
7 changes: 5 additions & 2 deletions src/admin/media/mediaModal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ interface MediaModalState {
showImageDetailsModal: boolean,
showNonImageDetailsModal: boolean,
showDeleteConfirmation: boolean,
isLinking: boolean,
isLoading: boolean
}

Expand Down Expand Up @@ -56,6 +57,7 @@ export class MediaModal extends React.Component<MediaModalProps, MediaModalState
showImageDetailsModal: false,
showNonImageDetailsModal: false,
showDeleteConfirmation: false,
isLinking: false,
isLoading: false
}
}
Expand Down Expand Up @@ -98,7 +100,7 @@ export class MediaModal extends React.Component<MediaModalProps, MediaModalState

linkMedia = async (): Promise<void> => {
const newMediaFile = await this.mediaService.createMediaUrl('media.svg', 'https://cdn.paperbits.io/images/logo.svg');
this.setState({ selectedMediaFile: newMediaFile, showNonImageDetailsModal: true });
this.setState({ selectedMediaFile: newMediaFile, showNonImageDetailsModal: true, isLinking: true });
}

deleteMedia = async (): Promise<void> => {
Expand Down Expand Up @@ -235,8 +237,9 @@ export class MediaModal extends React.Component<MediaModalProps, MediaModalState
{this.state.showNonImageDetailsModal &&
<NonImageDetailsModal
mediaItem={this.state.selectedMediaFile}
isLinking={this.state.isLinking}
onDismiss={() => {
this.setState({ showNonImageDetailsModal: false });
this.setState({ showNonImageDetailsModal: false, isLinking: false });
this.searchMedia();
}}
/>
Expand Down
45 changes: 37 additions & 8 deletions src/admin/media/nonImageDetailsModal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ interface NonImageDetailsModalState {

interface NonImageDetailsModalProps {
mediaItem: MediaContract,
isLinking?: boolean,
onDismiss: () => void
}

Expand Down Expand Up @@ -65,6 +66,19 @@ export class NonImageDetailsModal extends React.Component<NonImageDetailsModalPr
});
}

onReferenceUrlChange = (): void => {
if (!this.state.errors['downloadUrl'] && this.state.mediaItem.fileName === 'media.svg') {
const newName = this.state.mediaItem.downloadUrl.split("/").pop();
this.setState({
mediaItem: {
...this.state.mediaItem,
fileName: newName,
permalink: '/content/' + newName
}
})
}
}

validatePermalink = async (permalink: string): Promise<string> => {
if (permalink === this.props.mediaItem?.permalink) return '';

Expand All @@ -84,8 +98,6 @@ export class NonImageDetailsModal extends React.Component<NonImageDetailsModalPr
return;
}

return;

await this.mediaService.updateMedia(this.state.mediaItem);
this.eventManager.dispatchEvent('onSaveChanges');
this.props.onDismiss();
Expand All @@ -108,7 +120,13 @@ export class NonImageDetailsModal extends React.Component<NonImageDetailsModalPr
/>
<DefaultButton
text="Discard"
onClick={this.props.onDismiss}
onClick={async () => {
if (this.props.isLinking) {
await this.mediaService.deleteMedia(this.state.mediaItem);
this.eventManager.dispatchEvent('onSaveChanges');
}
this.props.onDismiss();
}}
/>
</Stack>
</Stack>
Expand All @@ -129,11 +147,22 @@ export class NonImageDetailsModal extends React.Component<NonImageDetailsModalPr
styles={textFieldStyles}
required
/>
<CopyableTextField
fieldLabel="Reference URL"
showLabel={true}
copyableValue={this.state.mediaItem.downloadUrl}
/>
{this.props.isLinking
? <TextField
label="Reference URL"
value={this.state.mediaItem.downloadUrl}
onChange={(event, newValue) => this.onInputChange('downloadUrl', newValue, URL_REQUIRED)}
errorMessage={this.state.errors['downloadUrl'] ?? ''}
styles={textFieldStyles}
required
onBlur={() => this.onReferenceUrlChange()}
/>
: <CopyableTextField
fieldLabel="Reference URL"
showLabel={true}
copyableValue={this.state.mediaItem.downloadUrl}
/>
}
<TextField
label="Description"
multiline
Expand Down

0 comments on commit b32da31

Please sign in to comment.