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 @@