1- import type { ActivityComponentType } from "@stackflow/solid" ;
2- import { useActivityParams } from "@stackflow/solid" ;
3- import { For , createMemo } from "solid-js" ;
1+ import {
2+ type ActivityComponentType ,
3+ useActivityParams ,
4+ useLoaderData ,
5+ } from "@stackflow/solid/future" ;
6+ import { For } from "solid-js" ;
47
58import ArticleCard from "../components/ArticleCard" ;
69import ArticleProfile from "../components/ArticleProfile" ;
710import Layout from "../components/Layout" ;
811import * as css from "./Article.css" ;
12+ import type { articleLoader } from "./Article.loader" ;
913
10- const recommenderCard = [
11- {
12- articleId : "25140667" ,
13- price : 41 ,
14- title : "Ran" ,
15- } ,
16- {
17- articleId : "60547101" ,
18- price : 24 ,
19- title : "Rest" ,
20- } ,
21- {
22- articleId : "34751776" ,
23- price : 42 ,
24- title : "Those" ,
25- } ,
26- {
27- articleId : "04114554" ,
28- price : 12 ,
29- title : "Beauty" ,
30- } ,
31- {
32- articleId : "81339443" ,
33- price : 3 ,
34- title : "Mighty" ,
35- } ,
36- {
37- articleId : "44738871" ,
38- price : 1 ,
39- title : "Afternoon" ,
40- } ,
41- {
42- articleId : "57388513" ,
43- price : 31 ,
44- title : "Brown" ,
45- } ,
46- {
47- articleId : "60883443" ,
48- price : 49 ,
49- title : "Musical" ,
50- } ,
51- {
52- articleId : "00932094" ,
53- price : 26 ,
54- title : "Occasionally" ,
55- } ,
56- {
57- articleId : "10749683" ,
58- price : 35 ,
59- title : "Having" ,
60- } ,
61- ] ;
62-
63- export interface ArticleParams {
64- articleId : string ;
65- title : string ;
14+ declare module "@stackflow/config" {
15+ interface Register {
16+ Article : {
17+ articleId : string ;
18+ title ?: string ;
19+ } ;
20+ }
6621}
6722
68- const Article : ActivityComponentType < ArticleParams > = ( ) => {
69- const activityParams = useActivityParams < {
70- articleId : string ;
71- title : string ;
72- } > ( ) ;
73- const imageUrl = createMemo (
74- ( ) => `https://picsum.photos/800/800/?id=${ activityParams ( ) ?. articleId } ` ,
75- ) ;
23+ const Article : ActivityComponentType < "Article" > = ( ) => {
24+ const activityParams = useActivityParams < "Article" > ( ) ;
25+ const data = useLoaderData < typeof articleLoader > ( ) ;
7626
7727 return (
7828 < Layout appBar = { { } } >
7929 < div class = { css . container } >
8030 < div class = { css . image } >
8131 < div class = { css . imageInner } >
8232 < img
83- src = { imageUrl ( ) }
33+ src = { data ( ) . imageUrl }
8434 alt = { activityParams ( ) ?. title }
8535 width = "100%"
8636 height = "100%"
@@ -101,7 +51,7 @@ const Article: ActivityComponentType<ArticleParams> = () => {
10151 < div class = { css . section } >
10252 < div class = { css . sectionTitle } > Other Items by Emila </ div >
10353 < div class = { css . recommenderGrid } >
104- < For each = { recommenderCard } >
54+ < For each = { data ( ) . recommenderCards } >
10555 { ( card ) => < ArticleCard { ...card } /> }
10656 </ For >
10757 </ div >
0 commit comments