From 7e70297a5c40f0d3ab1938536b1cfb434d7f6f83 Mon Sep 17 00:00:00 2001 From: skeptrune Date: Mon, 16 Dec 2024 22:40:29 -0800 Subject: [PATCH] cleanup: mobile styling fixes for chat component --- clients/search-component/README.md | 3 +- .../src/TrieveModal/Chat/AIInitalMessage.tsx | 2 +- .../src/TrieveModal/index.css | 6 +++- clients/ts-sdk/openapi.json | 22 ++++++++++++ clients/ts-sdk/src/types.gen.ts | 6 ++++ .../src/pages/dataset/PublicPageSettings.tsx | 35 ++++++++++++++++++- server/src/data/models.rs | 3 ++ server/src/handlers/page_handler.rs | 9 +++++ server/src/lib.rs | 1 + server/src/public/page.html | 4 +-- server/src/public/product.html | 4 +-- server/src/public/search-component-code.html | 11 +++--- server/static/output.css | 20 ++++------- 13 files changed, 99 insertions(+), 27 deletions(-) diff --git a/clients/search-component/README.md b/clients/search-component/README.md index bb439ada13..e93c7760b5 100644 --- a/clients/search-component/README.md +++ b/clients/search-component/README.md @@ -99,7 +99,8 @@ declare module "solid-js" { | problemLink | string (example: "mailto:help@trieve.ai?subject=") | null | | responsive | boolean | false | | floatingButtonPosition | "top-left", "top-right", "bottom-left", or "bottom-right" | "bottom-right" | -| showFloatingButton | boolean | false | +| showFloatingButton | boolean | false | +| buttonTriggers | { selector: "query-selector", mode: "chat" | "search" }[] | [] | ### Search Results diff --git a/clients/search-component/src/TrieveModal/Chat/AIInitalMessage.tsx b/clients/search-component/src/TrieveModal/Chat/AIInitalMessage.tsx index 42108d648b..e60bed62c4 100644 --- a/clients/search-component/src/TrieveModal/Chat/AIInitalMessage.tsx +++ b/clients/search-component/src/TrieveModal/Chat/AIInitalMessage.tsx @@ -38,7 +38,7 @@ export const AIInitialMessage = () => { I'm an AI assistant with access to documentation, help articles, and other content.

-

+

Ask me anything about{" "} | null; chat?: (boolean) | null; creatorLinkedInUrl?: (string) | null; creatorName?: (string) | null; diff --git a/frontends/dashboard/src/pages/dataset/PublicPageSettings.tsx b/frontends/dashboard/src/pages/dataset/PublicPageSettings.tsx index 5466a8b36f..db3b9fc154 100644 --- a/frontends/dashboard/src/pages/dataset/PublicPageSettings.tsx +++ b/frontends/dashboard/src/pages/dataset/PublicPageSettings.tsx @@ -548,7 +548,40 @@ const PublicPageControls = () => { inputClass="block w-full rounded border border-neutral-300 px-3 py-1.5 shadow-sm placeholder:text-neutral-400 focus:outline-magenta-500 sm:text-sm sm:leading-6" /> -

+
+
+ + } + /> +
+ { + return `${trigger.selector},${trigger.mode}`; + }) ?? [] + } + onChange={(e) => { + setExtraParams( + "buttonTriggers", + e.map((trigger) => { + const [selector, mode] = trigger.split(","); + return { + selector, + mode, + }; + }), + ); + }} + addLabel="Add Trigger" + addClass="text-sm" + inputClass="block w-full rounded border border-neutral-300 px-3 py-1.5 shadow-sm placeholder:text-neutral-400 focus:outline-magenta-500 sm:text-sm sm:leading-6" + /> +
diff --git a/server/src/data/models.rs b/server/src/data/models.rs index 8802d9534e..2b0a369bec 100644 --- a/server/src/data/models.rs +++ b/server/src/data/models.rs @@ -3153,6 +3153,9 @@ impl DatasetConfigurationDTO { show_floating_button: page_parameters_self .show_floating_button .or(page_parameters_curr.show_floating_button), + button_triggers: page_parameters_self + .button_triggers + .or(page_parameters_curr.button_triggers), debounce_ms: page_parameters_self .debounce_ms .or(page_parameters_curr.debounce_ms), diff --git a/server/src/handlers/page_handler.rs b/server/src/handlers/page_handler.rs index e9d750e8f0..2e4f3d3ad7 100644 --- a/server/src/handlers/page_handler.rs +++ b/server/src/handlers/page_handler.rs @@ -136,6 +136,13 @@ pub struct OpenGraphMetadata { description: Option, } +#[derive(Serialize, Deserialize, Debug, Clone, ToSchema, Default)] +#[serde(rename_all = "camelCase")] +pub struct ButtonTrigger { + selector: String, + mode: String, +} + #[derive(Serialize, Deserialize, Debug, Clone, ToSchema, Default)] #[serde(rename_all = "camelCase")] pub struct SingleProductOptions { @@ -217,6 +224,8 @@ pub struct PublicPageParameters { #[serde(skip_serializing_if = "Option::is_none")] pub show_floating_button: Option, #[serde(skip_serializing_if = "Option::is_none")] + pub button_triggers: Option>, + #[serde(skip_serializing_if = "Option::is_none")] pub debounce_ms: Option, #[serde(skip_serializing_if = "Option::is_none")] pub hero_pattern: Option, diff --git a/server/src/lib.rs b/server/src/lib.rs index 1a7367fbfd..7c92d751a6 100644 --- a/server/src/lib.rs +++ b/server/src/lib.rs @@ -396,6 +396,7 @@ impl Modify for SecurityAddon { operators::crawl_operator::Metadata, operators::crawl_operator::Sitemap, handlers::stripe_handler::CreateSetupCheckoutSessionResPayload, + handlers::page_handler::ButtonTrigger, handlers::page_handler::PublicPageSearchOptions, handlers::page_handler::OpenGraphMetadata, handlers::page_handler::SingleProductOptions, diff --git a/server/src/public/page.html b/server/src/public/page.html index f953a6afaf..87676e6393 100644 --- a/server/src/public/page.html +++ b/server/src/public/page.html @@ -4,7 +4,7 @@