Skip to content

Commit 3c0db14

Browse files
rexxarsrobinpyon
andauthored
fix: prevent removal of last character on no filename extension (#120)
* fix: prevent removal of last character on no filename extension Fixes sanity-io/client#98 If a file is uploaded with an original filename that does not include an extension (`.png` or similar), the `getFilenameWithoutExtension` method will remove the last character of the filename, because it uses the last index of `.`, which is not found, resulting in `-1`. * fix: simplify filename inputs, trim before validation --------- Co-authored-by: Robin Pyon <robin.pyon@gmail.com>
1 parent 7df3800 commit 3c0db14

File tree

2 files changed

+5
-64
lines changed

2 files changed

+5
-64
lines changed

src/components/DialogAssetEdit/index.tsx

+5-14
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import AssetMetadata from '../AssetMetadata'
2020
import Dialog from '../Dialog'
2121
import DocumentList from '../DocumentList'
2222
import FileAssetPreview from '../FileAssetPreview'
23-
import FormFieldInputFilename from '../FormFieldInputFilename'
2423
import FormFieldInputTags from '../FormFieldInputTags'
2524
import FormFieldInputText from '../FormFieldInputText'
2625
import FormFieldInputTextarea from '../FormFieldInputTextarea'
@@ -35,14 +34,9 @@ type Props = {
3534
type FormData = yup.InferType<typeof formSchema>
3635

3736
const formSchema = yup.object().shape({
38-
originalFilename: yup.string().required('Filename cannot be empty')
37+
originalFilename: yup.string().trim().required('Filename cannot be empty')
3938
})
4039

41-
const getFilenameWithoutExtension = (asset?: Asset): string | undefined => {
42-
const extensionIndex = asset?.originalFilename?.toLowerCase().lastIndexOf(`.${asset.extension}`)
43-
return asset?.originalFilename?.slice(0, extensionIndex)
44-
}
45-
4640
const DialogAssetEdit = (props: Props) => {
4741
const {
4842
children,
@@ -73,7 +67,7 @@ const DialogAssetEdit = (props: Props) => {
7367
const generateDefaultValues = (asset?: Asset) => ({
7468
altText: asset?.altText || '',
7569
description: asset?.description || '',
76-
originalFilename: asset ? getFilenameWithoutExtension(asset) : undefined,
70+
originalFilename: asset?.originalFilename || '',
7771
opt: {media: {tags: assetTagOptions}},
7872
title: asset?.title || ''
7973
})
@@ -165,9 +159,7 @@ const DialogAssetEdit = (props: Props) => {
165159
_weak: true
166160
})) || null
167161
}
168-
},
169-
// Append extension to filename
170-
originalFilename: `${sanitizedFormData.originalFilename}.${assetItem?.asset.extension}`
162+
}
171163
}
172164
})
173165
)
@@ -323,14 +315,13 @@ const DialogAssetEdit = (props: Props) => {
323315
value={assetTagOptions}
324316
/>
325317
{/* Filename */}
326-
<FormFieldInputFilename
318+
<FormFieldInputText
327319
disabled={formUpdating}
328320
error={errors?.originalFilename}
329-
extension={currentAsset?.extension || ''}
330321
label="Filename"
331322
name="originalFilename"
332323
ref={register}
333-
value={getFilenameWithoutExtension(currentAsset)}
324+
value={currentAsset?.originalFilename}
334325
/>
335326
{/* Title */}
336327
<FormFieldInputText

src/components/FormFieldInputFilename/index.tsx

-50
This file was deleted.

0 commit comments

Comments
 (0)