Skip to content

Commit

Permalink
Add list search functionality to CreateObjectForm collection dropdown
Browse files Browse the repository at this point in the history
  • Loading branch information
jmetrikat committed Feb 26, 2025
1 parent 87ff30a commit 37bfcb0
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 2 deletions.
8 changes: 7 additions & 1 deletion src/components/CreateObjectForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ interface CreateObjectFormProps {
setSelectedType: (type: string) => void;
selectedList: string;
setSelectedList: (listId: string) => void;
listSearchText: string;
setListSearchText: (searchText: string) => void;
isLoading: boolean;
draftValues: CreateObjectFormValues;
enableDrafts: boolean;
Expand All @@ -31,6 +33,8 @@ export default function CreateObjectForm({
setSelectedType,
selectedList,
setSelectedList,
listSearchText,
setListSearchText,
isLoading,
draftValues,
enableDrafts,
Expand Down Expand Up @@ -170,10 +174,12 @@ export default function CreateObjectForm({
title="Collection"
value={selectedList}
onChange={setSelectedList}
onSearchTextChange={setListSearchText}
throttle={true}
storeValue={true}
info="Select the collection where the object will be added"
>
<Form.Dropdown.Item key="none" value="" title="No Collection" icon={Icon.Dot} />
{!listSearchText && <Form.Dropdown.Item key="none" value="" title="No Collection" icon={Icon.Dot} />}
{lists.map((list) => (
<Form.Dropdown.Item key={list.id} value={list.id} title={list.name} icon={list.icon} />
))}
Expand Down
4 changes: 4 additions & 0 deletions src/components/EmptyViewObject.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ export default function EmptyViewObject({ title, contextValues }: EmptyViewObjec
setSelectedType,
selectedList,
setSelectedList,
listSearchText,
setListSearchText,
isLoading,
} = useCreateObjectData(draftValues);

Expand Down Expand Up @@ -65,6 +67,8 @@ export default function EmptyViewObject({ title, contextValues }: EmptyViewObjec
setSelectedType={setSelectedType}
selectedList={selectedList}
setSelectedList={setSelectedList}
listSearchText={listSearchText}
setListSearchText={setListSearchText}
isLoading={isLoading}
draftValues={draftValues}
enableDrafts={false}
Expand Down
4 changes: 4 additions & 0 deletions src/create-object.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@ function CreateObject({ draftValues, launchContext }: CreateObjectProps) {
setSelectedType,
selectedList,
setSelectedList,
listSearchText,
setListSearchText,
isLoading,
} = useCreateObjectData(mergedValues);

Expand All @@ -68,6 +70,8 @@ function CreateObject({ draftValues, launchContext }: CreateObjectProps) {
setSelectedType={setSelectedType}
selectedList={selectedList}
setSelectedList={setSelectedList}
listSearchText={listSearchText}
setListSearchText={setListSearchText}
isLoading={isLoading}
draftValues={mergedValues}
enableDrafts={true}
Expand Down
6 changes: 5 additions & 1 deletion src/hooks/useCreateObjectData.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,14 @@ export function useCreateObjectData(initialValues?: CreateObjectFormValues) {
const [selectedSpace, setSelectedSpace] = useState(initialValues?.space || "");
const [selectedType, setSelectedType] = useState(initialValues?.type || "");
const [selectedList, setSelectedList] = useState(initialValues?.list || "");
const [listSearchText, setListSearchText] = useState("");

const { spaces, spacesError, isLoadingSpaces } = useSpaces();
const {
objects: lists,
objectsError: listsError,
isLoadingObjects: isLoadingLists,
} = useSearch(selectedSpace, "", ["ot-collection"]);
} = useSearch(selectedSpace, listSearchText, ["ot-collection"]);

const restrictedTypes = [
"ot-audio",
Expand Down Expand Up @@ -62,6 +64,8 @@ export function useCreateObjectData(initialValues?: CreateObjectFormValues) {
setSelectedType,
selectedList,
setSelectedList,
listSearchText,
setListSearchText,
isLoading,
};
}

0 comments on commit 37bfcb0

Please sign in to comment.