diff --git a/src/components/CreateObjectForm.tsx b/src/components/CreateObjectForm.tsx
index ce90ef1..dbb4819 100644
--- a/src/components/CreateObjectForm.tsx
+++ b/src/components/CreateObjectForm.tsx
@@ -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;
@@ -31,6 +33,8 @@ export default function CreateObjectForm({
setSelectedType,
selectedList,
setSelectedList,
+ listSearchText,
+ setListSearchText,
isLoading,
draftValues,
enableDrafts,
@@ -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"
>
-
+ {!listSearchText && }
{lists.map((list) => (
))}
diff --git a/src/components/EmptyViewObject.tsx b/src/components/EmptyViewObject.tsx
index 5a103f4..09ccef3 100644
--- a/src/components/EmptyViewObject.tsx
+++ b/src/components/EmptyViewObject.tsx
@@ -31,6 +31,8 @@ export default function EmptyViewObject({ title, contextValues }: EmptyViewObjec
setSelectedType,
selectedList,
setSelectedList,
+ listSearchText,
+ setListSearchText,
isLoading,
} = useCreateObjectData(draftValues);
@@ -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}
diff --git a/src/create-object.tsx b/src/create-object.tsx
index 7e69f69..23d2692 100644
--- a/src/create-object.tsx
+++ b/src/create-object.tsx
@@ -54,6 +54,8 @@ function CreateObject({ draftValues, launchContext }: CreateObjectProps) {
setSelectedType,
selectedList,
setSelectedList,
+ listSearchText,
+ setListSearchText,
isLoading,
} = useCreateObjectData(mergedValues);
@@ -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}
diff --git a/src/hooks/useCreateObjectData.ts b/src/hooks/useCreateObjectData.ts
index 313df2e..223db5e 100644
--- a/src/hooks/useCreateObjectData.ts
+++ b/src/hooks/useCreateObjectData.ts
@@ -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",
@@ -62,6 +64,8 @@ export function useCreateObjectData(initialValues?: CreateObjectFormValues) {
setSelectedType,
selectedList,
setSelectedList,
+ listSearchText,
+ setListSearchText,
isLoading,
};
}