Skip to content

Commit

Permalink
Zeros and empty string now set form values to null
Browse files Browse the repository at this point in the history
  • Loading branch information
martpie committed Dec 4, 2024
1 parent 684c09c commit d61008b
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 20 deletions.
2 changes: 1 addition & 1 deletion src/components/Setting.module.css
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
color: var(--input-color);
border: solid 1px var(--border-color);
border-radius: var(--border-radius);
padding: 8px 12px;
padding: 8px;
width: 100%;
font-size: 1rem;
line-height: 1;
Expand Down
46 changes: 27 additions & 19 deletions src/views/ViewTrackDetails.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -132,17 +132,6 @@ export default function ViewTrackDetails() {
}}
/>
</Setting.Section>
<Setting.Section>
<Setting.Input
label="Duration"
id="duration"
name="duration"
type="text"
pattern="([01]?[0-9]{1}|2[0-3]{1}):[0-5]{1}[0-9]{1}"
disabled
value={parseDuration(track.duration)}
/>
</Setting.Section>
<Setting.Section>
<Flexbox direction="horizontal" gap={16}>
<Setting.Input
Expand All @@ -152,11 +141,11 @@ export default function ViewTrackDetails() {
type="number"
min="0"
step="1"
value={Number(formData.track_no)}
value={formData.track_no ?? ''}
onChange={(e) => {
setFormData({
...formData,
track_no: Number(e.currentTarget.value),
track_no: parseNullableNumber(e.currentTarget.value),
});
}}
/>
Expand All @@ -167,11 +156,11 @@ export default function ViewTrackDetails() {
type="number"
min="0"
step="1"
value={Number(formData.track_of)}
value={formData.track_of ?? ''}
onChange={(e) => {
setFormData({
...formData,
track_of: Number(e.currentTarget.value),
track_of: parseNullableNumber(e.currentTarget.value),
});
}}
/>
Expand All @@ -186,11 +175,11 @@ export default function ViewTrackDetails() {
type="number"
min="0"
step="1"
value={Number(formData.disk_no)}
value={formData.disk_no ?? ''}
onChange={(e) => {
setFormData({
...formData,
disk_no: Number(e.currentTarget.value),
disk_no: parseNullableNumber(e.currentTarget.value),
});
}}
/>
Expand All @@ -201,16 +190,27 @@ export default function ViewTrackDetails() {
type="number"
min="0"
step="1"
value={Number(formData.disk_of)}
value={formData.disk_of ?? ''}
onChange={(e) => {
setFormData({
...formData,
disk_of: Number(e.currentTarget.value),
disk_of: parseNullableNumber(e.currentTarget.value),
});
}}
/>
</Flexbox>
</Setting.Section>
<Setting.Section>
<Setting.Input
label="Duration"
id="duration"
name="duration"
type="text"
pattern="([01]?[0-9]{1}|2[0-3]{1}):[0-5]{1}[0-9]{1}"
disabled
value={parseDuration(track.duration)}
/>
</Setting.Section>
<Setting.Section>
<Setting.Input
label="Path"
Expand Down Expand Up @@ -254,3 +254,11 @@ ViewTrackDetails.loader = async ({ params }: LoaderFunctionArgs) => {

return { track };
};

function parseNullableNumber(str: string): number | null {
if (str === '' || str === '0') {
return null;
}

return Number(str);
}

0 comments on commit d61008b

Please sign in to comment.