Skip to content

Commit 4e9e2a0

Browse files
committed
started 0.0.9; fixed index.tsx
1 parent 87fe93b commit 4e9e2a0

File tree

6 files changed

+40
-14
lines changed

6 files changed

+40
-14
lines changed

dashi/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dashi/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "dashipopashi",
3-
"version": "0.0.8",
3+
"version": "0.0.9",
44
"description": "An experimental library for integrating interactive charts into existing JavaScript applications.",
55
"type": "module",
66
"files": [

dashi/src/lib/hooks.ts

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,34 @@
1+
import type { StoreState } from "@/lib/types/state/store";
12
import { store } from "@/lib/store";
3+
import { useMemo } from "react";
4+
import type { ContributionState } from "@/lib/types/state/contribution";
25

3-
export const useStore = store;
4-
export const useExtensions = () => useStore((state) => state.extensions);
5-
export const useContributionsResult = () =>
6-
useStore((state) => state.contributionsResult);
7-
export const useContributionsRecord = () =>
8-
useStore((state) => state.contributionsRecord);
6+
const selectConfiguration = (state: StoreState) => state.configuration;
7+
8+
const selectExtensions = (state: StoreState) => state.extensions;
9+
10+
const selectContributionsResult = (state: StoreState) =>
11+
state.contributionsResult;
12+
13+
const selectContributionsRecord = (state: StoreState) =>
14+
state.contributionsRecord;
15+
16+
const useStore = store;
17+
18+
export const useConfiguration = () => useStore(selectConfiguration);
19+
export const useExtensions = () => useStore(selectExtensions);
20+
export const useContributionsResult = () => useStore(selectContributionsResult);
21+
export const useContributionsRecord = () => useStore(selectContributionsRecord);
22+
23+
export function makeContributionsHook<S extends object = object>(
24+
contribPoint: string,
25+
): () => ContributionState<S>[] {
26+
return () => {
27+
const selectContributions = (state: StoreState) =>
28+
state.contributionsRecord[contribPoint];
29+
const contributions = useStore(selectContributions);
30+
return useMemo(() => {
31+
return (contributions || []) as ContributionState<S>[];
32+
}, [contributions]);
33+
};
34+
}

dashi/src/lib/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@ export {
88
} from "@/lib/types/model/event";
99
// Actions (store changes)
1010
export { initializeContributions } from "@/lib/actions/initializeContributions";
11-
export { configureFramework } from "@/lib/actions/configureFramework";
1211
export { handleComponentChange } from "@/lib/actions/handleComponentChange";
1312
export { updateContributionContainer } from "@/lib/actions/updateContributionContainer";
1413
// React Components
1514
export { Component } from "@/lib/components/Component";
1615
// React Hooks
1716
export {
18-
useStore,
17+
useConfiguration,
1918
useExtensions,
2019
useContributionsResult,
2120
useContributionsRecord,
21+
makeContributionsHook,
2222
} from "@/lib/hooks";

dashi/src/lib/types/state/store.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@ export interface FrameworkOptions<S extends object = object> {
2121
export interface StoreState<S extends object = object> {
2222
/** Framework configuration */
2323
configuration: FrameworkOptions<S>;
24-
/** API call result from `GET /contributions`. */
25-
contributionsResult: ApiResult<Contributions>;
2624
/** All extensions */
2725
extensions: Extension[];
26+
/** API call result from `GET /contributions`. */
27+
contributionsResult: ApiResult<Contributions>;
2828
/** A record that maps contribPoint --> ContributionState[].*/
2929
contributionsRecord: Record<ContribPoint, ContributionState[]>;
3030
}

dashipy/dashipy/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
version = "0.0.8"
1+
version = "0.0.9"

0 commit comments

Comments
 (0)