From ccefb37f205758cd2368b2d46dc9feacb9a9ed00 Mon Sep 17 00:00:00 2001 From: eglehelms Date: Wed, 30 Nov 2022 18:16:39 +0100 Subject: [PATCH] add filtering to speech creds --- .../internal/views/speech-services/form.tsx | 7 +++- .../internal/views/speech-services/index.tsx | 34 +++++++++++++++---- 2 files changed, 34 insertions(+), 7 deletions(-) diff --git a/src/containers/internal/views/speech-services/form.tsx b/src/containers/internal/views/speech-services/form.tsx index 81e0b7c..fb04591 100644 --- a/src/containers/internal/views/speech-services/form.tsx +++ b/src/containers/internal/views/speech-services/form.tsx @@ -98,7 +98,12 @@ export const SpeechServiceForm = ({ credential }: SpeechServiceFormProps) => { if (currentServiceProvider) { const payload: Partial = { vendor, - account_sid: accountSid || null, + account_sid: + user?.scope === USER_ACCOUNT + ? user?.account_sid + : accountSid + ? accountSid + : null, service_provider_sid: currentServiceProvider.service_provider_sid || null, use_for_tts: ttsCheck ? 1 : 0, diff --git a/src/containers/internal/views/speech-services/index.tsx b/src/containers/internal/views/speech-services/index.tsx index 238e525..d6873a5 100644 --- a/src/containers/internal/views/speech-services/index.tsx +++ b/src/containers/internal/views/speech-services/index.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useState } from "react"; +import React, { useEffect, useMemo, useState } from "react"; import { Button, H1, Icon, M } from "jambonz-ui"; import { Link } from "react-router-dom"; @@ -11,7 +11,12 @@ import { AccountFilter, Icons, Section, Spinner } from "src/components"; import { useSelectState, toastError, toastSuccess } from "src/store"; import { getFetch, deleteSpeechService, useServiceProviderData } from "src/api"; import { ROUTE_INTERNAL_SPEECH } from "src/router/routes"; -import { getHumanDateTime, hasLength, hasValue } from "src/utils"; +import { + getHumanDateTime, + hasLength, + hasValue, + useFilteredResults, +} from "src/utils"; import DeleteSpeechService from "./delete"; import { getUsage } from "./utils"; import { CredentialStatus } from "./status"; @@ -25,6 +30,22 @@ export const SpeechServices = () => { const [accountSid, setAccountSid] = useState(""); const [credential, setCredential] = useState(null); const [credentials, setCredentials] = useState(); + const [filter] = useState(""); + + const credentialsFiltered = useMemo(() => { + return credentials + ? credentials.filter((credentials) => + accountSid + ? credentials.account_sid === accountSid + : credentials.account_sid === null + ) + : []; + }, [accountSid, accounts]); + + const filteredCredentials = useFilteredResults( + filter, + credentialsFiltered + ); const getSpeechCredentials = (url: string) => { getFetch(url) @@ -78,6 +99,7 @@ export const SpeechServices = () => { getSpeechCredentials( `${API_ACCOUNTS}/${user?.account_sid || accountSid}/SpeechCredentials` ); + console.log(credentials); } else { if (currentServiceProvider) { getSpeechCredentials( @@ -105,12 +127,12 @@ export const SpeechServices = () => { defaultOption /> -
+
- {!hasValue(credentials) ? ( + {!hasValue(filteredCredentials) ? ( - ) : hasLength(credentials) ? ( - credentials.map((credential) => { + ) : hasLength(filteredCredentials) ? ( + filteredCredentials.map((credential) => { return (