Skip to content

Commit 27436d0

Browse files
authored
Link gems from the list-as-todo recipe (+ minor fixes) (#91)
1 parent 839dc88 commit 27436d0

File tree

3 files changed

+13
-9
lines changed

3 files changed

+13
-9
lines changed

typescript/packages/lookslike-high-level/src/data.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// This file is setting up example data
22
import { signal } from "@commontools/common-frp";
3-
import { Gem, NAME } from "./recipe.js";
3+
import { Gem } from "./recipe.js";
44
const { state } = signal;
55

66
import { todoList, todoTask } from "./recipes/todo-list.js";

typescript/packages/lookslike-high-level/src/recipes/todo-list-as-task.ts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import { view, tags, render } from "@commontools/common-ui";
22
import { signal, Cancel } from "@commontools/common-frp";
33
import { Gem, recipe, description, addSuggestion, NAME } from "../recipe.js";
4+
import { sagaLink } from "../components/saga-link.js";
45
const { binding } = view;
5-
const { include } = tags;
6+
const { include, vstack, span } = tags;
67
const { state, effect, computed } = signal;
78

89
const details = render.view("details", {});
@@ -43,8 +44,6 @@ export const todoListAsTask = recipe("todo list as task", ({ list, done }) => {
4344
item.done ? [] : [item.title]
4445
);
4546
const newSummary =
46-
list[NAME] +
47-
": " +
4847
items.length +
4948
" items. " +
5049
(notDoneTitles.length
@@ -67,10 +66,15 @@ export const todoListAsTask = recipe("todo list as task", ({ list, done }) => {
6766

6867
const UI = [
6968
details({}, [
70-
summary({}, binding("listSummary")),
69+
summary({}, [
70+
vstack({}, [
71+
sagaLink({ saga: binding("list") }),
72+
span({}, binding("listSummary")),
73+
]),
74+
]),
7175
include({ content: binding("fullUI") }),
7276
]),
73-
{ listSummary, fullUI },
77+
{ list, listSummary, fullUI },
7478
];
7579

7680
return {

typescript/packages/lookslike-high-level/src/recipes/todo-list.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@ import { recipe, NAME } from "../recipe.js";
44
import { annotation } from "../components/annotation.js";
55
const { binding, repeat } = view;
66
const { list, vstack, include, sendInput, todo, commonInput } = tags;
7-
const { state } = signal;
7+
const { state, computed } = signal;
88
const { subject } = stream;
99

1010
export const todoList = recipe("todo list", ({ title, items }) => {
1111
const newTitle = subject<{ detail: { value: string } }>();
1212
newTitle.sink({
1313
send: (event) => {
1414
const updatedTitle = event.detail?.value?.trim();
15-
if (!updatedTitle) return;
15+
if (updatedTitle === undefined) return;
1616
title.send(updatedTitle);
1717
},
1818
});
@@ -45,7 +45,7 @@ export const todoList = recipe("todo list", ({ title, items }) => {
4545
],
4646
title,
4747
items,
48-
[NAME]: title,
48+
[NAME]: computed([title], (title) => title || "untitled"),
4949
};
5050
});
5151

0 commit comments

Comments
 (0)