mirror of
https://github.com/Unleash/unleash.git
synced 2025-09-05 17:53:12 +02:00
random ramblings to get started
This commit is contained in:
parent
5c483c7d8d
commit
9567f60c5a
@ -166,6 +166,7 @@ type Props = {
|
|||||||
setValues: (values: string[]) => void;
|
setValues: (values: string[]) => void;
|
||||||
setValuesWithRecord: (values: string[]) => void;
|
setValuesWithRecord: (values: string[]) => void;
|
||||||
setError: React.Dispatch<React.SetStateAction<string>>;
|
setError: React.Dispatch<React.SetStateAction<string>>;
|
||||||
|
addValues: (...values: string[]) => void;
|
||||||
removeValue: (index: number) => void;
|
removeValue: (index: number) => void;
|
||||||
input: Input;
|
input: Input;
|
||||||
error: string;
|
error: string;
|
||||||
@ -187,6 +188,7 @@ export const EditableConstraint: FC<Props> = ({
|
|||||||
constraintValue,
|
constraintValue,
|
||||||
setValue,
|
setValue,
|
||||||
setValues,
|
setValues,
|
||||||
|
addValues,
|
||||||
setValuesWithRecord,
|
setValuesWithRecord,
|
||||||
setError,
|
setError,
|
||||||
removeValue,
|
removeValue,
|
||||||
@ -313,7 +315,6 @@ export const EditableConstraint: FC<Props> = ({
|
|||||||
<ValueList
|
<ValueList
|
||||||
values={localConstraint.values}
|
values={localConstraint.values}
|
||||||
removeValue={removeValue}
|
removeValue={removeValue}
|
||||||
setValues={setValuesWithRecord}
|
|
||||||
getExternalFocusTarget={() =>
|
getExternalFocusTarget={() =>
|
||||||
addValuesButtonRef.current ??
|
addValuesButtonRef.current ??
|
||||||
deleteButtonRef.current
|
deleteButtonRef.current
|
||||||
@ -323,14 +324,11 @@ export const EditableConstraint: FC<Props> = ({
|
|||||||
<AddValuesWidget
|
<AddValuesWidget
|
||||||
ref={addValuesButtonRef}
|
ref={addValuesButtonRef}
|
||||||
onAddValues={(newValues) => {
|
onAddValues={(newValues) => {
|
||||||
// todo (`addEditStrategy`): move deduplication logic higher up in the context handling
|
addValues(...newValues);
|
||||||
const combinedValues = new Set([
|
// setValuesWithRecord([
|
||||||
...(localConstraint.values || []),
|
// ...(localConstraint.values || []),
|
||||||
...newValues,
|
// ...newValues,
|
||||||
]);
|
// ]);
|
||||||
setValuesWithRecord(
|
|
||||||
Array.from(combinedValues),
|
|
||||||
);
|
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
) : null}
|
) : null}
|
||||||
@ -351,7 +349,7 @@ export const EditableConstraint: FC<Props> = ({
|
|||||||
</TopRow>
|
</TopRow>
|
||||||
{showInputField ? (
|
{showInputField ? (
|
||||||
<InputContainer>
|
<InputContainer>
|
||||||
<ResolveInput
|
<ResolveInput // todo (`addEditStrategy`) can we get rid of `setValues` in favor of `addValues` (and removeValues / clearValues)? that way, downstream components don't need to know anything about how to handle constraint values. Only that they need to call these functions. Can also be grouped into `constraintValueActions: { add, remove, clear }` or something.
|
||||||
setValues={setValues}
|
setValues={setValues}
|
||||||
setValuesWithRecord={setValuesWithRecord}
|
setValuesWithRecord={setValuesWithRecord}
|
||||||
setValue={setValue}
|
setValue={setValue}
|
||||||
|
@ -125,7 +125,10 @@ export const EditableConstraintWrapper = ({
|
|||||||
|
|
||||||
const setValuesWithRecord = useCallback((values: string[]) => {
|
const setValuesWithRecord = useCallback((values: string[]) => {
|
||||||
setLocalConstraint((prev) => {
|
setLocalConstraint((prev) => {
|
||||||
const localConstraint = { ...prev, values };
|
const localConstraint = {
|
||||||
|
...prev,
|
||||||
|
values: Array.from(new Set(values)),
|
||||||
|
};
|
||||||
|
|
||||||
recordChange(localConstraint);
|
recordChange(localConstraint);
|
||||||
|
|
||||||
@ -135,7 +138,10 @@ export const EditableConstraintWrapper = ({
|
|||||||
|
|
||||||
const setValues = useCallback((values: string[]) => {
|
const setValues = useCallback((values: string[]) => {
|
||||||
setLocalConstraint((prev) => {
|
setLocalConstraint((prev) => {
|
||||||
const localConstraint = { ...prev, values };
|
const localConstraint = {
|
||||||
|
...prev,
|
||||||
|
values: Array.from(new Set(values)),
|
||||||
|
};
|
||||||
|
|
||||||
return localConstraint;
|
return localConstraint;
|
||||||
});
|
});
|
||||||
|
@ -58,7 +58,6 @@ const ValueChip = styled(ValueChipBase)(({ theme }) => ({
|
|||||||
type Props = {
|
type Props = {
|
||||||
values: string[] | undefined;
|
values: string[] | undefined;
|
||||||
removeValue: (index: number) => void;
|
removeValue: (index: number) => void;
|
||||||
setValues: (values: string[]) => void;
|
|
||||||
// the element that should receive focus when all value chips are deleted
|
// the element that should receive focus when all value chips are deleted
|
||||||
getExternalFocusTarget: () => HTMLElement | null;
|
getExternalFocusTarget: () => HTMLElement | null;
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user