diff --git a/frontend/src/api/docs.ts b/frontend/src/api/docs.ts index 1a219ad..9098052 100644 --- a/frontend/src/api/docs.ts +++ b/frontend/src/api/docs.ts @@ -1,18 +1,22 @@ import { Doc } from '../models/misc'; -export async function getDocs(): Promise> { - //Fetch default source docs - const response = await fetch( - 'https://d3dg1063dc54p9.cloudfront.net/combined.json', - ); - const data = await response.json(); +export async function getDocs(): Promise | null> { + try { + //Fetch default source docs + const response = await fetch( + 'https://d3dg1063dc54p9.cloudfront.net/combined.json', + ); + const data = await response.json(); - //Create array of Doc objects - const docs: Array = []; + //Create array of Doc objects + const docs: Array = []; - data.forEach((doc: Doc) => { - docs.push(doc); - }); + data.forEach((doc: Doc) => { + docs.push(doc); + }); - return docs; + return docs; + } catch (error) { + return null; + } } diff --git a/frontend/src/preferences/SelectDocsModal.tsx b/frontend/src/preferences/SelectDocsModal.tsx index 26bd7f3..3850daf 100644 --- a/frontend/src/preferences/SelectDocsModal.tsx +++ b/frontend/src/preferences/SelectDocsModal.tsx @@ -14,10 +14,10 @@ export default function APIKeyModal({ isCancellable?: boolean; }) { const dispatch = useDispatch(); - const [isError, setIsError] = useState(false); - const [docs, setDocs] = useState([]); + const [docs, setDocs] = useState(null); const [localSelectedDocs, setLocalSelectedDocs] = useState(null); const [isDocsListOpen, setIsDocsListOpen] = useState(false); + const [isError, setIsError] = useState(false); function handleSubmit() { if (!localSelectedDocs) { @@ -31,7 +31,7 @@ export default function APIKeyModal({ } function handleCancel() { - setSelectedDocs(null); + setLocalSelectedDocs(null); setIsError(false); setModalState('INACTIVE'); } @@ -71,25 +71,31 @@ export default function APIKeyModal({ )} {isDocsListOpen && ( -
- {docs.map((doc, index) => { - if (doc.model) { - return ( -
{ - setLocalSelectedDocs(doc); - setIsDocsListOpen(false); - }} - className="h-10 w-full cursor-pointer border-x-2 border-b-2 hover:bg-gray-100" - > -

- {doc.name} {doc.version} -

-
- ); - } - })} +
+ {docs ? ( + docs.map((doc, index) => { + if (doc.model) { + return ( +
{ + setLocalSelectedDocs(doc); + setIsDocsListOpen(false); + }} + className="h-10 w-full cursor-pointer border-x-2 border-b-2 hover:bg-gray-100" + > +

+ {doc.name} {doc.version} +

+
+ ); + } + }) + ) : ( +
+

No default documentation.

+
+ )}
)}