const getMetrics = cache(
async (range: string): Promise<AggregateResult | undefined> => {
"use server";
return await getAggregateMetrics(range);
},
"metrics"
);
// hard coded initial value
export const route = {
load() {
void getMetrics("6mo");
},
};
export default function AddNote() {
// hard coded initial value
const [range, setRange] = createSignal("6mo");
// using a signal here to force createAsync to rerun
const metrics = createAsync(() => getMetrics(range()));
function changeMetrics(newRange: string) {
setRange(newRange);
};
return (
<>
<h1>Metrics</h1>
<MetricsBar metrics={metrics}/>
<button onClick={() => changeMetrics("day")}>Day</button>
<button onClick={() => changeMetrics("6mo")}>6mo</button>
<button onClick={() => changeMetrics("12mo")}>12mo</button>
</>
);
}
const getMetrics = cache(
async (range: string): Promise<AggregateResult | undefined> => {
"use server";
return await getAggregateMetrics(range);
},
"metrics"
);
// hard coded initial value
export const route = {
load() {
void getMetrics("6mo");
},
};
export default function AddNote() {
// hard coded initial value
const [range, setRange] = createSignal("6mo");
// using a signal here to force createAsync to rerun
const metrics = createAsync(() => getMetrics(range()));
function changeMetrics(newRange: string) {
setRange(newRange);
};
return (
<>
<h1>Metrics</h1>
<MetricsBar metrics={metrics}/>
<button onClick={() => changeMetrics("day")}>Day</button>
<button onClick={() => changeMetrics("6mo")}>6mo</button>
<button onClick={() => changeMetrics("12mo")}>12mo</button>
</>
);
}