feat(dashboard): chart customizations modal and plugins (#36062)

This commit is contained in:
Damian Pendrak
2026-01-14 17:00:18 +01:00
committed by GitHub
parent 4f3403b134
commit 35ac4c74fd
154 changed files with 10299 additions and 5502 deletions

View File

@@ -48,8 +48,13 @@ interface SelectAsyncControlProps extends SelectAsyncProps {
label?: string;
}
function isLabeledValue(arg: any): arg is LabeledValue {
return arg.value !== undefined;
function isLabeledValue(arg: unknown): arg is LabeledValue {
return (
typeof arg === 'object' &&
arg !== null &&
'value' in arg &&
arg.value !== undefined
);
}
const SelectAsyncControl = ({
@@ -66,6 +71,7 @@ const SelectAsyncControl = ({
}: SelectAsyncControlProps) => {
const [options, setOptions] = useState<SelectOptionsType>([]);
const [loaded, setLoaded] = useState<boolean>(false);
const [rawData, setRawData] = useState<Record<string, unknown> | null>(null);
const handleOnChange = (val: SelectValue) => {
let onChangeVal = val;
@@ -101,6 +107,7 @@ const SelectAsyncControl = ({
endpoint: dataEndpoint,
})
.then(response => {
setRawData(response.json);
const data = mutator
? mutator(response.json, value)
: response.json.result;
@@ -116,6 +123,13 @@ const SelectAsyncControl = ({
}
}, [addDangerToast, dataEndpoint, mutator, value, loaded]);
useEffect(() => {
if (rawData && mutator) {
const data = mutator(rawData, value);
setOptions(data);
}
}, [value, mutator, rawData]);
return (
<Select
allowClear={allowClear}