From b7e273ae06576d288a845beb3630d426f01142d8 Mon Sep 17 00:00:00 2001 From: SrJuggernaut Date: Fri, 5 Jan 2024 15:08:11 -0600 Subject: [PATCH] feat: state redux toolkit & feedback slice --- bun.lockb | Bin 270457 -> 273699 bytes package.json | 2 + src/app/FeedbackConsumer.tsx | 78 +++++++++++++++++++++++++++++++++++ src/app/StateProvider.tsx | 19 +++++++++ src/app/layout.tsx | 25 ++++++----- src/hooks/useAppDispatch.ts | 5 +++ src/hooks/useAppSelector.ts | 5 +++ src/state/feedbackSlice.ts | 33 +++++++++++++++ src/state/store.ts | 13 ++++++ src/types/feedback.ts | 1 + 10 files changed, 171 insertions(+), 10 deletions(-) create mode 100644 src/app/FeedbackConsumer.tsx create mode 100644 src/app/StateProvider.tsx create mode 100644 src/hooks/useAppDispatch.ts create mode 100644 src/hooks/useAppSelector.ts create mode 100644 src/state/feedbackSlice.ts create mode 100644 src/state/store.ts diff --git a/bun.lockb b/bun.lockb index c6f12e264ea25d34a925b5c99d4dbecdae5a422c..c63038c45fad2b7be9f8d1da25cff73e9de5b9b8 100755 GIT binary patch delta 53360 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

vnt~7Mm`6c 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 diff --git a/package.json b/package.json index 3cf9643..f9e3088 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "@fortawesome/free-brands-svg-icons": "^6.5.1", "@fortawesome/free-solid-svg-icons": "^6.5.1", "@fortawesome/react-fontawesome": "^0.2.0", + "@reduxjs/toolkit": "^2.0.1", "appwrite": "^13.0.1", "entgamers-database": "^0.0.5", "entgamers-panda-preset": "0.1.1", @@ -27,6 +28,7 @@ "node-appwrite": "^11.1.0", "react": "18.2.0", "react-dom": "18.2.0", + "react-redux": "^9.0.4", "sharp": "^0.33.1", "yup": "^1.3.3" }, diff --git a/src/app/FeedbackConsumer.tsx b/src/app/FeedbackConsumer.tsx new file mode 100644 index 0000000..f1b964b --- /dev/null +++ b/src/app/FeedbackConsumer.tsx @@ -0,0 +1,78 @@ +'use client' +import IconButton from '@/components/ui/IconButton' +import Typography from '@/components/ui/Typography' +import { useAppDispatch } from '@/hooks/useAppDispatch' +import { useAppSelector } from '@/hooks/useAppSelector' +import { removeAlert } from '@/state/feedbackSlice' +import { css } from '@/styled-system/css' +import { alert } from '@/styled-system/recipes/alert' +import { faTimes } from '@fortawesome/free-solid-svg-icons' +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' +import { AnimatePresence, motion } from 'framer-motion' +import { type FC } from 'react' +import { createPortal } from 'react-dom' + +const FeedbackConsumer: FC = () => { + const { alerts } = useAppSelector(state => state.feedback) + const dispatch = useAppDispatch() + return ( + <> + {alerts.length > 0 && createPortal( + ( + + + + {alerts.map((currentAlert) => ( + + dispatch(removeAlert(currentAlert.id))} + > + + + + {currentAlert.title} + + + {currentAlert.message} + + + ))} + + + + ), + document.body, + 'alerts' + )} + + ) +} +export default FeedbackConsumer diff --git a/src/app/StateProvider.tsx b/src/app/StateProvider.tsx new file mode 100644 index 0000000..61ef270 --- /dev/null +++ b/src/app/StateProvider.tsx @@ -0,0 +1,19 @@ +'use client' +import store from '@/state/store' +import { type FC, type ReactNode } from 'react' +import { Provider } from 'react-redux' + +export interface StateProviderProps { + children: ReactNode +} + +const StateProvider: FC = ({ children }) => { + return ( + + {children} + + ) +} +export default StateProvider diff --git a/src/app/layout.tsx b/src/app/layout.tsx index c0cb7ca..b1207fc 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -10,6 +10,8 @@ import { config } from '@fortawesome/fontawesome-svg-core' import '@fortawesome/fontawesome-svg-core/styles.css' import { type Metadata } from 'next' import { type FC, type ReactNode } from 'react' +import FeedbackConsumer from './FeedbackConsumer' +import StateProvider from './StateProvider' config.autoAddCss = false @@ -26,16 +28,19 @@ const RootLayout: FC = ({ children }) => { return ( -

-
- {children} -
-