diff --git a/build/flecks.yml b/build/flecks.yml index 3c6d0a5..774f233 100644 --- a/build/flecks.yml +++ b/build/flecks.yml @@ -14,6 +14,7 @@ '@flecks/passport-local-react': {} '@flecks/passport-react': {} '@flecks/react': {} +'@flecks/react-redux': {} '@flecks/redis': {} '@flecks/redux': {} '@flecks/repl': {} diff --git a/packages/passport-react/build/flecks.bootstrap.js b/packages/passport-react/build/flecks.bootstrap.js index 926fcb7..e404ad3 100644 --- a/packages/passport-react/build/flecks.bootstrap.js +++ b/packages/passport-react/build/flecks.bootstrap.js @@ -1 +1 @@ -exports.dependencies = ['@flecks/passport', '@flecks/react']; +exports.dependencies = ['@flecks/passport', '@flecks/react-redux']; diff --git a/packages/passport-react/package.json b/packages/passport-react/package.json index df38a98..c98df05 100644 --- a/packages/passport-react/package.json +++ b/packages/passport-react/package.json @@ -25,7 +25,7 @@ "@flecks/core": "^3.0.0", "@flecks/passport": "^3.0.0", "@flecks/react": "^3.0.0", - "@flecks/redux": "^3.0.0", + "@flecks/react-redux": "^3.0.0", "@flecks/web": "^3.0.0" }, "devDependencies": { diff --git a/packages/passport-react/src/user-required.jsx b/packages/passport-react/src/user-required.jsx index 72da863..8f88718 100644 --- a/packages/passport-react/src/user-required.jsx +++ b/packages/passport-react/src/user-required.jsx @@ -1,6 +1,6 @@ import {PropTypes, React} from '@flecks/react'; import {Navigate, useLocation} from '@flecks/react/router'; -import {useSelector} from '@flecks/redux'; +import {useSelector} from '@flecks/react-redux'; import {userIdSelector} from '@flecks/passport'; function UserRequired({children, destination}) { diff --git a/packages/react-redux/.gitignore b/packages/react-redux/.gitignore new file mode 100644 index 0000000..e3ead1f --- /dev/null +++ b/packages/react-redux/.gitignore @@ -0,0 +1,119 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* + +# copy-webpack-plugin charity +.git diff --git a/packages/react-redux/build/flecks.bootstrap.js b/packages/react-redux/build/flecks.bootstrap.js new file mode 100644 index 0000000..57eeb84 --- /dev/null +++ b/packages/react-redux/build/flecks.bootstrap.js @@ -0,0 +1 @@ +exports.dependencies = ['@flecks/react', '@flecks/redux']; diff --git a/packages/react-redux/package.json b/packages/react-redux/package.json new file mode 100644 index 0000000..5d0b760 --- /dev/null +++ b/packages/react-redux/package.json @@ -0,0 +1,26 @@ +{ + "name": "@flecks/react-redux", + "version": "3.0.0", + "scripts": { + "build": "flecks build", + "clean": "flecks clean", + "lint": "flecks lint", + "postversion": "cp package.json dist", + "test": "flecks test" + }, + "files": [ + "client.js", + "index.js", + "server.js" + ], + "dependencies": { + "@flecks/core": "3.0.0", + "@flecks/react": "3.0.0", + "@flecks/redux": "3.0.0", + "react-redux": "^7.2.2" + }, + "devDependencies": { + "@flecks/build": "3.0.0", + "@flecks/fleck": "3.0.0" + } +} \ No newline at end of file diff --git a/packages/react-redux/src/client.js b/packages/react-redux/src/client.js new file mode 100644 index 0000000..f061384 --- /dev/null +++ b/packages/react-redux/src/client.js @@ -0,0 +1,9 @@ +import {Flecks} from '@flecks/core'; +import {Provider} from 'react-redux'; + +export const hooks = { + '@flecks/react.providers': Flecks.priority( + async (req, flecks) => [Provider, {store: flecks.redux}], + {before: '@flecks/react/router/client'}, + ), +}; diff --git a/packages/react-redux/src/index.js b/packages/react-redux/src/index.js new file mode 100644 index 0000000..e733de7 --- /dev/null +++ b/packages/react-redux/src/index.js @@ -0,0 +1 @@ +export * from 'react-redux'; diff --git a/packages/react-redux/src/server.js b/packages/react-redux/src/server.js new file mode 100644 index 0000000..fd2c04d --- /dev/null +++ b/packages/react-redux/src/server.js @@ -0,0 +1,9 @@ +import {Flecks} from '@flecks/core'; +import {Provider} from 'react-redux'; + +export const hooks = { + '@flecks/react.providers': Flecks.priority( + (req) => [Provider, {store: req['@flecks/redux']}], + {before: '@flecks/react/router/server'}, + ), +};