Spaces:
Sleeping
Sleeping
Kennedy Johnson Cursor commited on
Commit ·
acbaa2f
1
Parent(s): 083b448
Apply Heidi Aug 18 Veggie panel feedback: disclaimer, prompt cards, all-six default.
Browse filesRestore her homepage/feature copy, replace copyright with the food-only educational disclaimer, retitle chat prompts (no healthcare/supplements), default active advisors to all six, and tighten Veggie Chef food-focused language plus daikon routing.
Co-authored-by: Cursor <cursoragent@cursor.com>
- healthyeating_config.yaml +37 -23
- multi_llm_chatbot_backend/app/core/improved_orchestrator.py +3 -2
- personas/healthy_eating_advisors/veggie_chef.yaml +8 -5
- phd-advisor-frontend/src/components/AdvisorStatusDropdown.js +3 -1
- phd-advisor-frontend/src/components/CareerSourcesSection.js +6 -21
- phd-advisor-frontend/src/components/CopyrightNotice.js +5 -4
- phd-advisor-frontend/src/pages/ChatPage.js +11 -1
- phd-advisor-frontend/src/styles/Sidebar.css +1 -1
- phd-advisor-frontend/src/styles/components.css +5 -2
healthyeating_config.yaml
CHANGED
|
@@ -10,7 +10,13 @@ app:
|
|
| 10 |
subtitle: "AI-Powered Tips For Clean Eating and Real Food"
|
| 11 |
primary_color: "#7C3AED"
|
| 12 |
logo_icon: "Leaf"
|
| 13 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 14 |
user_avatars:
|
| 15 |
- { id: "leaf-violet", icon: "Leaf", color: "#7C3AED", bg: "#F5F3FF" }
|
| 16 |
- { id: "user-emerald", icon: "User", color: "#059669", bg: "#ECFDF5" }
|
|
@@ -25,16 +31,16 @@ homepage:
|
|
| 25 |
headline_prefix: "Easy Clean Eating with"
|
| 26 |
headline_highlight: "Expert AI Advisors"
|
| 27 |
description: >-
|
| 28 |
-
|
| 29 |
-
fruits and vegetables,
|
| 30 |
-
|
| 31 |
features_title: "Why Use Healthy Eating Advisor?"
|
| 32 |
features:
|
| 33 |
- title: "All About Food"
|
| 34 |
-
description: "Friendly tips
|
| 35 |
icon: "UtensilsCrossed"
|
| 36 |
-
- title: "
|
| 37 |
-
description: "
|
| 38 |
icon: "Sparkles"
|
| 39 |
- title: "Available 24/7"
|
| 40 |
description: "Chat when it's convenient for you"
|
|
@@ -68,7 +74,7 @@ login:
|
|
| 68 |
chat_page:
|
| 69 |
placeholder: "Ask us anything about food!"
|
| 70 |
examples:
|
| 71 |
-
- title: "
|
| 72 |
icon: "Leaf"
|
| 73 |
color: "#059669"
|
| 74 |
bg_color: "#ECFDF5"
|
|
@@ -76,30 +82,38 @@ chat_page:
|
|
| 76 |
- "What is clean eating?"
|
| 77 |
- "How can I get started eating more vegetables?"
|
| 78 |
- "What can I pack for lunch?"
|
| 79 |
-
- title: "
|
| 80 |
-
icon: "Pill"
|
| 81 |
-
color: "#D97706"
|
| 82 |
-
bg_color: "#FFFBEB"
|
| 83 |
-
suggestions:
|
| 84 |
-
- "What's an easy superfood?"
|
| 85 |
-
- "What does it mean for a food to have high enzymes?"
|
| 86 |
-
- "Which healthy-eating book should I start with?"
|
| 87 |
-
- title: "New advisee intake"
|
| 88 |
icon: "ClipboardList"
|
| 89 |
color: "#2563EB"
|
| 90 |
bg_color: "#EFF6FF"
|
| 91 |
suggestions:
|
| 92 |
-
- "New advisee intake — please ask about my health, body state, and food concerns."
|
| 93 |
-
- "Explain how to describe my health and body state or concerns so you can help."
|
| 94 |
- "I know I'm not eating in a healthy way but I don't know what to do about it."
|
| 95 |
-
|
| 96 |
-
|
|
|
|
|
|
|
| 97 |
color: "#E11D48"
|
| 98 |
bg_color: "#FFF1F2"
|
| 99 |
suggestions:
|
| 100 |
-
- "
|
| 101 |
-
- "
|
| 102 |
- "Is clean eating really more enjoyable?"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 103 |
|
| 104 |
personas:
|
| 105 |
base_prompt: |
|
|
|
|
| 10 |
subtitle: "AI-Powered Tips For Clean Eating and Real Food"
|
| 11 |
primary_color: "#7C3AED"
|
| 12 |
logo_icon: "Leaf"
|
| 13 |
+
# Educational disclaimer (shown in homepage footer + chat sidebar). No copyright/name line.
|
| 14 |
+
footer_text: >-
|
| 15 |
+
This Expert AI Advisors Panel is about food and is for educational and
|
| 16 |
+
illustrative purposes only. Nothing on this site or generated by this Panel
|
| 17 |
+
constitutes medical, nutritional, or professional advice. AI responses do
|
| 18 |
+
not replace professional medical evaluations. Always consult a physician for
|
| 19 |
+
diagnosis or treatment.
|
| 20 |
user_avatars:
|
| 21 |
- { id: "leaf-violet", icon: "Leaf", color: "#7C3AED", bg: "#F5F3FF" }
|
| 22 |
- { id: "user-emerald", icon: "User", color: "#059669", bg: "#ECFDF5" }
|
|
|
|
| 31 |
headline_prefix: "Easy Clean Eating with"
|
| 32 |
headline_highlight: "Expert AI Advisors"
|
| 33 |
description: >-
|
| 34 |
+
Get friendly, practical guidance on enjoying real food, getting started,
|
| 35 |
+
fruits and vegetables, easy prep, superfoods, and more! Use a panel of AI
|
| 36 |
+
experts to help you reach your healthy eating goals.
|
| 37 |
features_title: "Why Use Healthy Eating Advisor?"
|
| 38 |
features:
|
| 39 |
- title: "All About Food"
|
| 40 |
+
description: "Friendly tips and easy recommendations"
|
| 41 |
icon: "UtensilsCrossed"
|
| 42 |
+
- title: "Personalized Next Steps"
|
| 43 |
+
description: "Specialized AI Advisors personalize recommendations for you"
|
| 44 |
icon: "Sparkles"
|
| 45 |
- title: "Available 24/7"
|
| 46 |
description: "Chat when it's convenient for you"
|
|
|
|
| 74 |
chat_page:
|
| 75 |
placeholder: "Ask us anything about food!"
|
| 76 |
examples:
|
| 77 |
+
- title: "Real Food"
|
| 78 |
icon: "Leaf"
|
| 79 |
color: "#059669"
|
| 80 |
bg_color: "#ECFDF5"
|
|
|
|
| 82 |
- "What is clean eating?"
|
| 83 |
- "How can I get started eating more vegetables?"
|
| 84 |
- "What can I pack for lunch?"
|
| 85 |
+
- title: "Let's learn about you"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 86 |
icon: "ClipboardList"
|
| 87 |
color: "#2563EB"
|
| 88 |
bg_color: "#EFF6FF"
|
| 89 |
suggestions:
|
|
|
|
|
|
|
| 90 |
- "I know I'm not eating in a healthy way but I don't know what to do about it."
|
| 91 |
+
- "Ask me why I want to improve my diet"
|
| 92 |
+
- "Ask me what is worrying me the most about my diet"
|
| 93 |
+
- title: "Why healthy eating?"
|
| 94 |
+
icon: "Heart"
|
| 95 |
color: "#E11D48"
|
| 96 |
bg_color: "#FFF1F2"
|
| 97 |
suggestions:
|
| 98 |
+
- "What are the benefits of real food?"
|
| 99 |
+
- "What's wrong with processed food?"
|
| 100 |
- "Is clean eating really more enjoyable?"
|
| 101 |
+
- title: "Easy Food Prep"
|
| 102 |
+
icon: "ChefHat"
|
| 103 |
+
color: "#0F766E"
|
| 104 |
+
bg_color: "#F0FDFA"
|
| 105 |
+
suggestions:
|
| 106 |
+
- "How can I eat less sugar?"
|
| 107 |
+
- "What's a daikon radish?"
|
| 108 |
+
- "What can I do with frozen fruit?"
|
| 109 |
+
- title: "Superfood"
|
| 110 |
+
icon: "Sparkles"
|
| 111 |
+
color: "#D97706"
|
| 112 |
+
bg_color: "#FFFBEB"
|
| 113 |
+
suggestions:
|
| 114 |
+
- "What's an easy superfood?"
|
| 115 |
+
- "What does it mean for a food to have high enzymes?"
|
| 116 |
+
- "What's a good healthy eating book for beginners?"
|
| 117 |
|
| 118 |
personas:
|
| 119 |
base_prompt: |
|
multi_llm_chatbot_backend/app/core/improved_orchestrator.py
CHANGED
|
@@ -1137,11 +1137,12 @@ When analyzing the document context:
|
|
| 1137 |
],
|
| 1138 |
"veggie_chef": [
|
| 1139 |
"vegetable", "veggie", "broccoli", "carrot", "brassica",
|
| 1140 |
-
"nightshade", "steam", "salad", "greens",
|
|
|
|
| 1141 |
],
|
| 1142 |
"fruit_maven": [
|
| 1143 |
"fruit", "juice", "berry", "blueberry", "pomegranate",
|
| 1144 |
-
"banana", "apple", "citrus", "
|
| 1145 |
],
|
| 1146 |
"superfoods_superman": [
|
| 1147 |
"superfood", "ginger", "turmeric", "coconut", "fish oil",
|
|
|
|
| 1137 |
],
|
| 1138 |
"veggie_chef": [
|
| 1139 |
"vegetable", "veggie", "broccoli", "carrot", "brassica",
|
| 1140 |
+
"nightshade", "steam", "salad", "greens", "daikon", "radish",
|
| 1141 |
+
"bok choy", "stir-fry", "stir fry", "plantain", "guacamole",
|
| 1142 |
],
|
| 1143 |
"fruit_maven": [
|
| 1144 |
"fruit", "juice", "berry", "blueberry", "pomegranate",
|
| 1145 |
+
"banana", "apple", "citrus", "frozen fruit",
|
| 1146 |
],
|
| 1147 |
"superfoods_superman": [
|
| 1148 |
"superfood", "ginger", "turmeric", "coconut", "fish oil",
|
personas/healthy_eating_advisors/veggie_chef.yaml
CHANGED
|
@@ -80,25 +80,27 @@ persona_prompt: |
|
|
| 80 |
|
| 81 |
- Be able to discuss:
|
| 82 |
|
| 83 |
-
- general
|
| 84 |
|
| 85 |
- fiber, nutrients, antioxidants, and vegetable variety
|
| 86 |
|
| 87 |
- starchy vegetables, cooling vegetables, legumes, and vegetable families
|
| 88 |
|
| 89 |
-
- cruciferous/brassica vegetables, including bok choy, broccoli, cabbage, kale, turnip, radish, watercress, and others
|
| 90 |
|
| 91 |
- preparation methods such as steaming, stir-frying, sautéing, raw preparations, snacks, guacamole, fried plantains, and bok choy stir fry
|
| 92 |
|
| 93 |
- practical vegetable shopping ideas like prewashed vegetables, prepared salads, farmers’ markets, and CSA boxes
|
| 94 |
|
|
|
|
|
|
|
| 95 |
- When discussing the references, present them as helpful informational material, not absolute truth.
|
| 96 |
|
| 97 |
- If the documents contain nuanced, controversial, or debated claims, present them carefully and with appropriate uncertainty.
|
| 98 |
|
| 99 |
Important content tendencies from the references:
|
| 100 |
|
| 101 |
-
- Vegetables are generally presented as nutrient-dense, fiber-rich, and useful in
|
| 102 |
|
| 103 |
- Cruciferous vegetables may have potential benefits and also cautions related to thyroid function in some contexts; present this as nuanced, not one-size-fits-all.
|
| 104 |
|
|
@@ -114,9 +116,9 @@ persona_prompt: |
|
|
| 114 |
|
| 115 |
- Do not say vegetables will cure, reverse, prevent, or treat disease as a guaranteed outcome.
|
| 116 |
|
| 117 |
-
- If discussing
|
| 118 |
|
| 119 |
-
- If a user mentions a medical condition, thyroid concerns, chronic pain, allergies, eating disorder concerns, or medication questions, encourage them to talk with a qualified healthcare professional or registered dietitian.
|
| 120 |
|
| 121 |
- If a user asks about food safety, poisoning, severe allergic reactions, or dangerous symptoms, advise appropriate professional or urgent help.
|
| 122 |
|
|
@@ -190,6 +192,7 @@ persona_prompt: |
|
|
| 190 |
- What is hummus? Where do I get it?
|
| 191 |
- I really like radishes
|
| 192 |
- I'd like a beginner's guide to daikon. What is it?
|
|
|
|
| 193 |
- What vegetables will I probably like if I enjoy radishes?
|
| 194 |
- Can I have a tasting plan for three vegetables that I might like if I like radishes?
|
| 195 |
**PANEL HANDOFFS:**
|
|
|
|
| 80 |
|
| 81 |
- Be able to discuss:
|
| 82 |
|
| 83 |
+
- general benefits of vegetables for everyday eating (fiber, nutrients, antioxidants, variety) — keep it food-focused, not medical
|
| 84 |
|
| 85 |
- fiber, nutrients, antioxidants, and vegetable variety
|
| 86 |
|
| 87 |
- starchy vegetables, cooling vegetables, legumes, and vegetable families
|
| 88 |
|
| 89 |
+
- cruciferous/brassica vegetables, including bok choy, broccoli, cabbage, kale, turnip, radish, daikon, watercress, and others
|
| 90 |
|
| 91 |
- preparation methods such as steaming, stir-frying, sautéing, raw preparations, snacks, guacamole, fried plantains, and bok choy stir fry
|
| 92 |
|
| 93 |
- practical vegetable shopping ideas like prewashed vegetables, prepared salads, farmers’ markets, and CSA boxes
|
| 94 |
|
| 95 |
+
- beginner-friendly produce questions (for example: what is a daikon radish, and simple ways to try it)
|
| 96 |
+
|
| 97 |
- When discussing the references, present them as helpful informational material, not absolute truth.
|
| 98 |
|
| 99 |
- If the documents contain nuanced, controversial, or debated claims, present them carefully and with appropriate uncertainty.
|
| 100 |
|
| 101 |
Important content tendencies from the references:
|
| 102 |
|
| 103 |
+
- Vegetables are generally presented as nutrient-dense, fiber-rich, and useful in clean eating and real-food patterns.
|
| 104 |
|
| 105 |
- Cruciferous vegetables may have potential benefits and also cautions related to thyroid function in some contexts; present this as nuanced, not one-size-fits-all.
|
| 106 |
|
|
|
|
| 116 |
|
| 117 |
- Do not say vegetables will cure, reverse, prevent, or treat disease as a guaranteed outcome.
|
| 118 |
|
| 119 |
+
- If discussing benefits of vegetables, use cautious wording such as “may help,” “is associated with,” “can support,” or “some studies suggest.” Stay on food and prep — do not diagnose or prescribe.
|
| 120 |
|
| 121 |
+
- If a user mentions a medical condition, thyroid concerns, chronic pain, allergies, eating disorder concerns, or medication questions, encourage them to talk with a qualified healthcare professional or registered dietitian. Do not give healthcare or supplement advice.
|
| 122 |
|
| 123 |
- If a user asks about food safety, poisoning, severe allergic reactions, or dangerous symptoms, advise appropriate professional or urgent help.
|
| 124 |
|
|
|
|
| 192 |
- What is hummus? Where do I get it?
|
| 193 |
- I really like radishes
|
| 194 |
- I'd like a beginner's guide to daikon. What is it?
|
| 195 |
+
- What's a daikon radish?
|
| 196 |
- What vegetables will I probably like if I enjoy radishes?
|
| 197 |
- Can I have a tasting plan for three vegetables that I might like if I like radishes?
|
| 198 |
**PANEL HANDOFFS:**
|
phd-advisor-frontend/src/components/AdvisorStatusDropdown.js
CHANGED
|
@@ -60,7 +60,9 @@ const AdvisorStatusDropdown = ({
|
|
| 60 |
const selectNone = (event) => {
|
| 61 |
event.stopPropagation();
|
| 62 |
if (onSetActiveAdvisors && allIds.length > 0) {
|
| 63 |
-
|
|
|
|
|
|
|
| 64 |
}
|
| 65 |
};
|
| 66 |
|
|
|
|
| 60 |
const selectNone = (event) => {
|
| 61 |
event.stopPropagation();
|
| 62 |
if (onSetActiveAdvisors && allIds.length > 0) {
|
| 63 |
+
// Prefer Kitchen Coach when minimizing (sort_order 1), not Veggie Chef alone.
|
| 64 |
+
const kitchenId = allIds.includes('kitchen_coach') ? 'kitchen_coach' : allIds[0];
|
| 65 |
+
onSetActiveAdvisors([kitchenId]);
|
| 66 |
}
|
| 67 |
};
|
| 68 |
|
phd-advisor-frontend/src/components/CareerSourcesSection.js
CHANGED
|
@@ -15,33 +15,18 @@ const SOURCE_CARDS = [
|
|
| 15 |
},
|
| 16 |
];
|
| 17 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 18 |
const CareerSourcesSection = () => (
|
| 19 |
<section className="career-sources-section" aria-labelledby="career-sources-title">
|
| 20 |
<h3 id="career-sources-title" className="features-title">What you can explore</h3>
|
| 21 |
-
<p className="career-sources-intro">
|
| 22 |
-
Heidi wrote this panel for people who want easy clean eating with real food — not complicated diets.
|
| 23 |
-
Start with the advisors above, then dig into her sites for more guidance:{' '}
|
| 24 |
-
<a
|
| 25 |
-
href="https://getting-started-with-healthy-eating.com/"
|
| 26 |
-
target="_blank"
|
| 27 |
-
rel="noopener noreferrer"
|
| 28 |
-
>
|
| 29 |
-
Getting Started with Healthy Eating
|
| 30 |
-
</a>
|
| 31 |
-
{' '}and{' '}
|
| 32 |
-
<a
|
| 33 |
-
href="https://foodagainstpain.com/"
|
| 34 |
-
target="_blank"
|
| 35 |
-
rel="noopener noreferrer"
|
| 36 |
-
>
|
| 37 |
-
Food Against Pain
|
| 38 |
-
</a>
|
| 39 |
-
.
|
| 40 |
-
</p>
|
| 41 |
<div className="career-sources-grid">
|
| 42 |
{SOURCE_CARDS.map((card) => (
|
| 43 |
<article key={card.title} className="career-source-card">
|
| 44 |
-
{/* Intentionally blank — Heidi will add photos later */}
|
| 45 |
<div className="career-source-image career-source-image--empty" aria-hidden />
|
| 46 |
<h4 className="feature-title">{card.title}</h4>
|
| 47 |
<p className="feature-description">{card.blurb}</p>
|
|
|
|
| 15 |
},
|
| 16 |
];
|
| 17 |
|
| 18 |
+
/**
|
| 19 |
+
* Explore cards with blank image placeholders.
|
| 20 |
+
* Image slots use CSS aspect-ratio 16:9 (full card width; ~min-height 120px).
|
| 21 |
+
* Heidi can supply photos later at that ratio.
|
| 22 |
+
*/
|
| 23 |
const CareerSourcesSection = () => (
|
| 24 |
<section className="career-sources-section" aria-labelledby="career-sources-title">
|
| 25 |
<h3 id="career-sources-title" className="features-title">What you can explore</h3>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 26 |
<div className="career-sources-grid">
|
| 27 |
{SOURCE_CARDS.map((card) => (
|
| 28 |
<article key={card.title} className="career-source-card">
|
| 29 |
+
{/* Intentionally blank — Heidi will add photos later (16:9) */}
|
| 30 |
<div className="career-source-image career-source-image--empty" aria-hidden />
|
| 31 |
<h4 className="feature-title">{card.title}</h4>
|
| 32 |
<p className="feature-description">{card.blurb}</p>
|
phd-advisor-frontend/src/components/CopyrightNotice.js
CHANGED
|
@@ -1,6 +1,11 @@
|
|
| 1 |
import React from 'react';
|
| 2 |
import { useAppConfig } from '../contexts/AppConfigContext';
|
| 3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4 |
const CopyrightNotice = ({ variant = 'footer', className = '' }) => {
|
| 5 |
const { config } = useAppConfig();
|
| 6 |
const isSidebar = variant === 'sidebar';
|
|
@@ -8,12 +13,8 @@ const CopyrightNotice = ({ variant = 'footer', className = '' }) => {
|
|
| 8 |
const patentsClass = isSidebar ? 'sidebar-patents-link' : 'footer-patents-link';
|
| 9 |
const combinedClass = className ? `${textClass} ${className}` : textClass;
|
| 10 |
|
| 11 |
-
// Prefer the author/copyright line from config (app.footer_text). This keeps
|
| 12 |
-
// the footer themed per-panel instead of hardcoding a single brand.
|
| 13 |
const footerText = config?.app?.footer_text?.trim();
|
| 14 |
|
| 15 |
-
// When a panel provides its own footer_text (author/copyright line), show only
|
| 16 |
-
// that and skip the Neon.ai brand + patents link.
|
| 17 |
if (footerText) {
|
| 18 |
return <p className={combinedClass}>{footerText}</p>;
|
| 19 |
}
|
|
|
|
| 1 |
import React from 'react';
|
| 2 |
import { useAppConfig } from '../contexts/AppConfigContext';
|
| 3 |
|
| 4 |
+
/**
|
| 5 |
+
* Panel footer / sidebar notice.
|
| 6 |
+
* When app.footer_text is set (Healthy Eating: educational disclaimer), show only that.
|
| 7 |
+
* Otherwise fall back to the Neon.ai copyright line.
|
| 8 |
+
*/
|
| 9 |
const CopyrightNotice = ({ variant = 'footer', className = '' }) => {
|
| 10 |
const { config } = useAppConfig();
|
| 11 |
const isSidebar = variant === 'sidebar';
|
|
|
|
| 13 |
const patentsClass = isSidebar ? 'sidebar-patents-link' : 'footer-patents-link';
|
| 14 |
const combinedClass = className ? `${textClass} ${className}` : textClass;
|
| 15 |
|
|
|
|
|
|
|
| 16 |
const footerText = config?.app?.footer_text?.trim();
|
| 17 |
|
|
|
|
|
|
|
| 18 |
if (footerText) {
|
| 19 |
return <p className={combinedClass}>{footerText}</p>;
|
| 20 |
}
|
phd-advisor-frontend/src/pages/ChatPage.js
CHANGED
|
@@ -19,7 +19,9 @@ import SearchPathGate, { needsSearchPath } from '../components/SearchPathGate';
|
|
| 19 |
import ClearDataModal from '../components/ClearDataModal';
|
| 20 |
import AccountModal from '../components/AccountModal';
|
| 21 |
|
| 22 |
-
|
|
|
|
|
|
|
| 23 |
|
| 24 |
const ChatPage = ({ user, authToken, onNavigateToHome, onNavigateToCanvas, onSignOut }) => {
|
| 25 |
const { config, advisors, getAdvisorColors } = useAppConfig();
|
|
@@ -101,6 +103,13 @@ const ChatPage = ({ user, authToken, onNavigateToHome, onNavigateToCanvas, onSig
|
|
| 101 |
const allIds = Object.keys(advisors || {});
|
| 102 |
if (allIds.length === 0) return;
|
| 103 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 104 |
setActiveAdvisorIds((prev) => {
|
| 105 |
let next = prev.filter((id) => allIds.includes(id));
|
| 106 |
if (next.length === 0) {
|
|
@@ -114,6 +123,7 @@ const ChatPage = ({ user, authToken, onNavigateToHome, onNavigateToCanvas, onSig
|
|
| 114 |
/* ignore */
|
| 115 |
}
|
| 116 |
}
|
|
|
|
| 117 |
if (next.length === 0) next = [...allIds];
|
| 118 |
if (
|
| 119 |
prev.length === next.length &&
|
|
|
|
| 19 |
import ClearDataModal from '../components/ClearDataModal';
|
| 20 |
import AccountModal from '../components/AccountModal';
|
| 21 |
|
| 22 |
+
// Panel-specific key so prior single-advisor (e.g. Veggie-only) prefs don't stick.
|
| 23 |
+
const ACTIVE_ADVISORS_STORAGE_KEY = 'healthyEatingActiveAdvisorIds';
|
| 24 |
+
const LEGACY_ACTIVE_ADVISORS_STORAGE_KEY = 'muscleGrowthActiveAdvisorIds';
|
| 25 |
|
| 26 |
const ChatPage = ({ user, authToken, onNavigateToHome, onNavigateToCanvas, onSignOut }) => {
|
| 27 |
const { config, advisors, getAdvisorColors } = useAppConfig();
|
|
|
|
| 103 |
const allIds = Object.keys(advisors || {});
|
| 104 |
if (allIds.length === 0) return;
|
| 105 |
|
| 106 |
+
// Drop legacy key so Heidi's "Veggie Chef only" sticky default resets to all six.
|
| 107 |
+
try {
|
| 108 |
+
localStorage.removeItem(LEGACY_ACTIVE_ADVISORS_STORAGE_KEY);
|
| 109 |
+
} catch {
|
| 110 |
+
/* ignore */
|
| 111 |
+
}
|
| 112 |
+
|
| 113 |
setActiveAdvisorIds((prev) => {
|
| 114 |
let next = prev.filter((id) => allIds.includes(id));
|
| 115 |
if (next.length === 0) {
|
|
|
|
| 123 |
/* ignore */
|
| 124 |
}
|
| 125 |
}
|
| 126 |
+
// Heidi Aug 18: default is all six (not Veggie Chef alone).
|
| 127 |
if (next.length === 0) next = [...allIds];
|
| 128 |
if (
|
| 129 |
prev.length === next.length &&
|
phd-advisor-frontend/src/styles/Sidebar.css
CHANGED
|
@@ -717,7 +717,7 @@
|
|
| 717 |
|
| 718 |
.sidebar-copyright-text {
|
| 719 |
margin: 8px 0 0 0;
|
| 720 |
-
font-size:
|
| 721 |
line-height: 1.4;
|
| 722 |
color: var(--text-secondary, #6b7280);
|
| 723 |
}
|
|
|
|
| 717 |
|
| 718 |
.sidebar-copyright-text {
|
| 719 |
margin: 8px 0 0 0;
|
| 720 |
+
font-size: 9px;
|
| 721 |
line-height: 1.4;
|
| 722 |
color: var(--text-secondary, #6b7280);
|
| 723 |
}
|
phd-advisor-frontend/src/styles/components.css
CHANGED
|
@@ -1037,8 +1037,11 @@
|
|
| 1037 |
|
| 1038 |
.footer-text {
|
| 1039 |
color: var(--text-secondary);
|
| 1040 |
-
font-size:
|
| 1041 |
-
|
|
|
|
|
|
|
|
|
|
| 1042 |
}
|
| 1043 |
|
| 1044 |
.footer-neon-link {
|
|
|
|
| 1037 |
|
| 1038 |
.footer-text {
|
| 1039 |
color: var(--text-secondary);
|
| 1040 |
+
font-size: 12px;
|
| 1041 |
+
line-height: 1.45;
|
| 1042 |
+
margin: 0 auto;
|
| 1043 |
+
max-width: 720px;
|
| 1044 |
+
text-align: center;
|
| 1045 |
}
|
| 1046 |
|
| 1047 |
.footer-neon-link {
|