@@ -139,7 +139,7 @@ export type BotProps = {
139139 footer ?: FooterTheme ;
140140 sourceDocsTitle ?: string ;
141141 observersConfig ?: observersConfigType ;
142- starterPrompts ?: string [ ] ;
142+ starterPrompts ?: string [ ] | Record < string , { prompt : string } > ;
143143 starterPromptFontSize ?: number ;
144144 clearChatOnReload ?: boolean ;
145145 disclaimer ?: DisclaimerPopUpTheme ;
@@ -540,7 +540,7 @@ export const Bot = (botProps: BotProps & { class?: string }) => {
540540 if ( response . ok && response . headers . get ( 'content-type' ) === EventStreamContentType ) {
541541 return ; // everything's good
542542 } else if ( response . status === 429 ) {
543- const errMessage = await response . text ( ) ?? 'Too many requests. Please try again later.' ;
543+ const errMessage = ( await response . text ( ) ) ?? 'Too many requests. Please try again later.' ;
544544 handleError ( errMessage ) ;
545545 throw new Error ( errMessage ) ;
546546 } else {
@@ -825,9 +825,18 @@ export const Bot = (botProps: BotProps & { class?: string }) => {
825825 } ) ;
826826
827827 createEffect ( ( ) => {
828- if ( props . starterPrompts && props . starterPrompts . length > 0 ) {
829- const prompts = Object . values ( props . starterPrompts ) . map ( ( prompt ) => prompt ) ;
828+ if ( props . starterPrompts ) {
829+ let prompts : string [ ] ;
830830
831+ if ( Array . isArray ( props . starterPrompts ) ) {
832+ // If starterPrompts is an array
833+ prompts = props . starterPrompts ;
834+ } else {
835+ // If starterPrompts is a JSON object
836+ prompts = Object . values ( props . starterPrompts ) . map ( ( promptObj : { prompt : string } ) => promptObj . prompt ) ;
837+ }
838+
839+ // Filter out any empty prompts
831840 return setStarterPrompts ( prompts . filter ( ( prompt ) => prompt !== '' ) ) ;
832841 }
833842 } ) ;
0 commit comments