From 7cb5606bd2a18ea19e35f2a6fffacef5feeca3dd Mon Sep 17 00:00:00 2001 From: Luca Barone Date: Sun, 11 Sep 2022 23:48:46 +0200 Subject: [PATCH 1/3] =?UTF-8?q?=F0=9F=8E=89=20Add=20react=20filters-bar=20?= =?UTF-8?q?module?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/react-filters-bar/.gitignore | 3 +++ packages/react-filters-bar/package.json | 22 ++++++++++++++++ .../react-filters-bar/src/filter-context.tsx | 26 +++++++++++++++++++ packages/react-filters-bar/src/main.ts | 0 packages/react-filters-bar/tsconfig.json | 8 ++++++ 5 files changed, 59 insertions(+) create mode 100644 packages/react-filters-bar/.gitignore create mode 100644 packages/react-filters-bar/package.json create mode 100644 packages/react-filters-bar/src/filter-context.tsx create mode 100644 packages/react-filters-bar/src/main.ts create mode 100644 packages/react-filters-bar/tsconfig.json diff --git a/packages/react-filters-bar/.gitignore b/packages/react-filters-bar/.gitignore new file mode 100644 index 0000000..a7e59f0 --- /dev/null +++ b/packages/react-filters-bar/.gitignore @@ -0,0 +1,3 @@ +/node_modules +/dist +/coverage \ No newline at end of file diff --git a/packages/react-filters-bar/package.json b/packages/react-filters-bar/package.json new file mode 100644 index 0000000..943a063 --- /dev/null +++ b/packages/react-filters-bar/package.json @@ -0,0 +1,22 @@ +{ + "name": "@cloudwalker/react-filters-bar", + "version": "0.0.0", + "files": [ + "dist/**" + ], + "main": "./dist/main.js", + "module": "./dist/main.mjs", + "types": "./dist/main.d.ts", + "sideEffects": false, + "author": { + "name": "Luca Barone", + "email": "baro.luc@gmail.com", + "url": "https://github.com/cloud-walker" + }, + "publishConfig": { + "access": "public" + }, + "devDependencies": { + "react": "^18.2.0" + } +} diff --git a/packages/react-filters-bar/src/filter-context.tsx b/packages/react-filters-bar/src/filter-context.tsx new file mode 100644 index 0000000..9e50a89 --- /dev/null +++ b/packages/react-filters-bar/src/filter-context.tsx @@ -0,0 +1,26 @@ +import { createContext, PropsWithChildren, useContext } from "react"; + +type FilterState = { + remove: () => void; + setOperator: (value: string) => void; + setValue: (value: string) => void; + operator: string; + value: string; +}; + +const FilterCtx = createContext(null); + +export function useFilterCtx() { + const ctx = useContext(FilterCtx); + if (ctx == null) { + throw Error("FilterCtx.Provider is missing."); + } + return ctx; +} + +export function FilterProvider({ + children, + ...props +}: PropsWithChildren) { + return {children}; +} diff --git a/packages/react-filters-bar/src/main.ts b/packages/react-filters-bar/src/main.ts new file mode 100644 index 0000000..e69de29 diff --git a/packages/react-filters-bar/tsconfig.json b/packages/react-filters-bar/tsconfig.json new file mode 100644 index 0000000..afb4741 --- /dev/null +++ b/packages/react-filters-bar/tsconfig.json @@ -0,0 +1,8 @@ +{ + "compilerOptions": { + "strict": true, + "jsx": "react-jsx", + "noUncheckedIndexedAccess": true + }, + "include": ["src"] +} From 9582381347825cc75bfd24057dc78824548a1171 Mon Sep 17 00:00:00 2001 From: Luca Barone Date: Sun, 11 Sep 2022 23:55:12 +0200 Subject: [PATCH 2/3] wip --- .../react-filters-bar/src/filter-context.tsx | 2 +- .../src/filtersbar-context.tsx | 24 +++++++++++++++++++ packages/react-filters-bar/src/main.ts | 0 packages/react-filters-bar/src/main.tsx | 5 ++++ 4 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 packages/react-filters-bar/src/filtersbar-context.tsx delete mode 100644 packages/react-filters-bar/src/main.ts create mode 100644 packages/react-filters-bar/src/main.tsx diff --git a/packages/react-filters-bar/src/filter-context.tsx b/packages/react-filters-bar/src/filter-context.tsx index 9e50a89..a23c09e 100644 --- a/packages/react-filters-bar/src/filter-context.tsx +++ b/packages/react-filters-bar/src/filter-context.tsx @@ -21,6 +21,6 @@ export function useFilterCtx() { export function FilterProvider({ children, ...props -}: PropsWithChildren) { +}: PropsWithChildren) { return {children}; } diff --git a/packages/react-filters-bar/src/filtersbar-context.tsx b/packages/react-filters-bar/src/filtersbar-context.tsx new file mode 100644 index 0000000..d99b024 --- /dev/null +++ b/packages/react-filters-bar/src/filtersbar-context.tsx @@ -0,0 +1,24 @@ +import { createContext, PropsWithChildren, useContext } from "react"; + +type FiltersDef = Record; + +const FiltersBarCtx = createContext<{ filtersDef: FiltersDef } | null>(null); + +export function useFiltersBarCtx() { + const ctx = useContext(FiltersBarCtx); + if (ctx == null) { + throw Error("FiltersBarCtx.Provider is missing."); + } + return ctx; +} + +export function FiltersBarProvider({ + children, + filtersDef, +}: PropsWithChildren<{ filtersDef: TFiltersDef }>) { + return ( + + {children} + + ); +} diff --git a/packages/react-filters-bar/src/main.ts b/packages/react-filters-bar/src/main.ts deleted file mode 100644 index e69de29..0000000 diff --git a/packages/react-filters-bar/src/main.tsx b/packages/react-filters-bar/src/main.tsx new file mode 100644 index 0000000..8b60772 --- /dev/null +++ b/packages/react-filters-bar/src/main.tsx @@ -0,0 +1,5 @@ +import { FiltersBarProvider } from "./filtersbar-context"; + +export function FiltersBar({filtersDef}: ) { + return +} \ No newline at end of file From 4af463ea59700a05cc210ef1000f7f2d42b5bfa2 Mon Sep 17 00:00:00 2001 From: Luca Barone Date: Thu, 29 Sep 2022 21:34:30 +0200 Subject: [PATCH 3/3] Integrate better with turbo --- packages/react-filters-bar/package.json | 19 +++++++++++++++---- packages/react-filters-bar/tsup.config.ts | 8 ++++++++ 2 files changed, 23 insertions(+), 4 deletions(-) create mode 100644 packages/react-filters-bar/tsup.config.ts diff --git a/packages/react-filters-bar/package.json b/packages/react-filters-bar/package.json index 943a063..cc1a24d 100644 --- a/packages/react-filters-bar/package.json +++ b/packages/react-filters-bar/package.json @@ -1,12 +1,17 @@ { "name": "@cloudwalker/react-filters-bar", "version": "0.0.0", + "scripts": { + "types": "tsc --noEmit", + "build": "tsup src/main.tsx", + "dev": "tsup src/main.tsx --watch" + }, "files": [ "dist/**" ], - "main": "./dist/main.js", - "module": "./dist/main.mjs", - "types": "./dist/main.d.ts", + "main": "dist/main.js", + "module": "dist/main.mjs", + "types": "dist/main.d.ts", "sideEffects": false, "author": { "name": "Luca Barone", @@ -17,6 +22,12 @@ "access": "public" }, "devDependencies": { - "react": "^18.2.0" + "@types/react": "^18.0.21", + "react": "^18.2.0", + "tsup": "^6.2.3", + "typescript": "^4.8.4" + }, + "peerDependencies": { + "react": ">=16.8" } } diff --git a/packages/react-filters-bar/tsup.config.ts b/packages/react-filters-bar/tsup.config.ts new file mode 100644 index 0000000..f58b0d2 --- /dev/null +++ b/packages/react-filters-bar/tsup.config.ts @@ -0,0 +1,8 @@ +import {defineConfig} from 'tsup' + +export default defineConfig({ + format: ['cjs', 'esm'], + minify: true, + sourcemap: true, + dts: true, +})