feat(playlists): add isMissing and isPresent operators to Navidrome smart playlist form (#2149)

This commit is contained in:
Bram Johnson
2026-06-18 12:44:58 -04:00
committed by GitHub
parent 00d9929568
commit 16e00a0f9f
3 changed files with 38 additions and 12 deletions
@@ -1,4 +1,4 @@
import { useEffect, useState } from 'react';
import { useEffect, useMemo, useState } from 'react';
import { Filters } from '/@/renderer/components/query-builder';
import { ActionIcon } from '/@/shared/components/action-icon/action-icon';
@@ -102,19 +102,28 @@ const QueryValueInput = ({
const isDatePickerOperator =
operator === 'beforeDate' || operator === 'afterDate' || operator === 'inTheRangeDate';
const BooleanSelectComponent = useMemo(
() => (
<Select
data={[
{ label: 'true', value: 'true' },
{ label: 'false', value: 'false' },
]}
onChange={onChange}
value={value}
{...props}
/>
),
[onChange, props, value],
);
if (operator === 'isMissing' || operator === 'isPresent') {
return BooleanSelectComponent;
}
switch (type) {
case 'boolean':
return (
<Select
data={[
{ label: 'true', value: 'true' },
{ label: 'false', value: 'false' },
]}
onChange={onChange}
value={value}
{...props}
/>
);
return BooleanSelectComponent;
case 'date':
if (isDatePickerOperator && operator !== 'inTheRangeDate') {
const dateValue = value ? parseDateValue(value) : null;