From 7da292aa485760ec564c58dbe609692152f9123a Mon Sep 17 00:00:00 2001
From: Graeme Ross
Date: Sun, 13 Oct 2024 21:03:27 +0100
Subject: [PATCH] themes setting option
---
.../ThemeChanger/ThemeChanger.stories.tsx | 26 +++++++++++++++++
.../ThemeChanger/ThemeChanger.test.tsx | 14 +++++++++
.../components/ThemeChanger/ThemeChanger.tsx | 29 +++++++++++++++++++
web/src/layouts/ClientLayout/ClientLayout.tsx | 3 ++
4 files changed, 72 insertions(+)
create mode 100644 web/src/components/ThemeChanger/ThemeChanger.stories.tsx
create mode 100644 web/src/components/ThemeChanger/ThemeChanger.test.tsx
create mode 100644 web/src/components/ThemeChanger/ThemeChanger.tsx
diff --git a/web/src/components/ThemeChanger/ThemeChanger.stories.tsx b/web/src/components/ThemeChanger/ThemeChanger.stories.tsx
new file mode 100644
index 0000000..c16b988
--- /dev/null
+++ b/web/src/components/ThemeChanger/ThemeChanger.stories.tsx
@@ -0,0 +1,26 @@
+// Pass props to your component by passing an `args` object to your story
+//
+// ```tsx
+// export const Primary: Story = {
+// args: {
+// propName: propValue
+// }
+// }
+// ```
+//
+// See https://storybook.js.org/docs/react/writing-stories/args.
+
+import type { Meta, StoryObj } from '@storybook/react'
+
+import ThemeChanger from './ThemeChanger'
+
+const meta: Meta = {
+ component: ThemeChanger,
+ tags: ['autodocs'],
+}
+
+export default meta
+
+type Story = StoryObj
+
+export const Primary: Story = {}
diff --git a/web/src/components/ThemeChanger/ThemeChanger.test.tsx b/web/src/components/ThemeChanger/ThemeChanger.test.tsx
new file mode 100644
index 0000000..04fb847
--- /dev/null
+++ b/web/src/components/ThemeChanger/ThemeChanger.test.tsx
@@ -0,0 +1,14 @@
+import { render } from '@redwoodjs/testing/web'
+
+import ThemeChanger from './ThemeChanger'
+
+// Improve this test with help from the Redwood Testing Doc:
+// https://redwoodjs.com/docs/testing#testing-components
+
+describe('ThemeChanger', () => {
+ it('renders successfully', () => {
+ expect(() => {
+ render()
+ }).not.toThrow()
+ })
+})
diff --git a/web/src/components/ThemeChanger/ThemeChanger.tsx b/web/src/components/ThemeChanger/ThemeChanger.tsx
new file mode 100644
index 0000000..a25c40d
--- /dev/null
+++ b/web/src/components/ThemeChanger/ThemeChanger.tsx
@@ -0,0 +1,29 @@
+const ThemeChanger = () => {
+ return (
+
+ Themes
+
+
+ )
+}
+
+export default ThemeChanger
diff --git a/web/src/layouts/ClientLayout/ClientLayout.tsx b/web/src/layouts/ClientLayout/ClientLayout.tsx
index 9e227cf..66080d2 100644
--- a/web/src/layouts/ClientLayout/ClientLayout.tsx
+++ b/web/src/layouts/ClientLayout/ClientLayout.tsx
@@ -1,4 +1,5 @@
import { Link, routes } from '@redwoodjs/router'
+import ThemeChanger from 'src/components/ThemeChanger/ThemeChanger'
type ClientLayoutProps = {
children?: React.ReactNode
@@ -88,6 +89,7 @@ const ClientLayout = ({ children }: ClientLayoutProps) => {
Settings
+
Logout
@@ -137,6 +139,7 @@ const ClientLayout = ({ children }: ClientLayoutProps) => {
Providing reliable tech since 1992
+