diff --git a/src/components/journal/ThoughtGardenScreen.tsx b/src/components/journal/ThoughtGardenScreen.tsx index 029a586..467f9cf 100644 --- a/src/components/journal/ThoughtGardenScreen.tsx +++ b/src/components/journal/ThoughtGardenScreen.tsx @@ -331,63 +331,84 @@ export function ThoughtGardenScreen({ onBack, onOpenChatWithContext, onOpenClust ) : ( -
- {groups.map((group, idx) => ( - -
- {groups.length > 1 && ( -
-

- {group.label} - ({group.thoughts.length}) -

-
- - +
+ {groups.map((group) => { + // When there are multiple themes, each group sits in its own soft + // "planter" — a sage-tinted container that visually holds its cards + // together. With a single theme there's nothing to separate from, + // so we skip the wrapper to avoid an empty-looking frame. + const isMulti = groups.length > 1; + return ( + +
+ {isMulti && ( +
+

+ + {group.label} + + ({group.thoughts.length}) + +

+
+ + +
+ )} +
+ {group.thoughts.map((thought, cardIdx) => ( +
+ toggleSelect(thought.id)} + onArchive={() => archiveThought(thought.id)} + onMoveToTheme={(theme) => { + moveThoughtToTheme(thought.id, theme); + toast.success(bilingual({ fr: `Déplacé vers "${theme}"`, en: `Moved to "${theme}"`, es: `Movido a "${theme}"`, ja: `「${theme}」へ移動しました`, 'zh-Hans': `已移到“${theme}”`, 'zh-Hant': `已移到「${theme}」` })); + }} + onLinkToCluster={(clusterId) => handleLinkThought(thought.id, clusterId)} + onCreateAndLink={(title) => handleCreateAndLink(title, thought.id)} + clusters={clusters} + isFr={isFr} + /> +
+ ))}
- )} -
- {group.thoughts.map(thought => ( - toggleSelect(thought.id)} - onArchive={() => archiveThought(thought.id)} - onMoveToTheme={(theme) => { - moveThoughtToTheme(thought.id, theme); - toast.success(bilingual({ fr: `Déplacé vers "${theme}"`, en: `Moved to "${theme}"`, es: `Movido a "${theme}"`, ja: `「${theme}」へ移動しました`, 'zh-Hans': `已移到“${theme}”`, 'zh-Hant': `已移到「${theme}」` })); - }} - onLinkToCluster={(clusterId) => handleLinkThought(thought.id, clusterId)} - onCreateAndLink={(title) => handleCreateAndLink(title, thought.id)} - clusters={clusters} - isFr={isFr} - /> - ))}
-
-
- ))} + + ); + })}
{activeThought && (