Skip to content

Commit 068f035

Browse files
committed
fix(exports): add remaining exports and update theme properties to fill in remaining non-overriden
theme values "fix #16", "fix #18", "fix #15"
1 parent f19fdb1 commit 068f035

File tree

4 files changed

+17
-13
lines changed

4 files changed

+17
-13
lines changed

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@
4949
},
5050
"dependencies": {
5151
"@types/styled-components": "^5.1.26",
52-
"styled-components": "^5.3.10"
52+
"styled-components": "^5.3.10",
53+
"type-fest": "^3.10.0"
5354
},
5455
"config": {
5556
"commitizen": {

src/components/ThemeProvider.tsx

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import React, { createContext } from "react";
22
import { ThemeProvider as StyledThemeProvider } from "styled-components";
3-
import useDarkMode from "use-dark-mode"
3+
import { PartialDeep } from "type-fest";
4+
import useDarkMode from "use-dark-mode";
45

56
export type Palette = {
67
primary: string;
@@ -20,7 +21,7 @@ export type Theme = {
2021
dark: Palette;
2122
};
2223

23-
export const defaultTheme: Theme = {
24+
export const defaultTheme: PartialDeep<Theme> = {
2425
light: {
2526
primary: "#9649E3",
2627
secondary: "#AE8BFA",
@@ -51,22 +52,22 @@ export const ThemeContext = createContext(defaultTheme);
5152

5253
export const ThemeProvider = (props: {
5354
children: React.ReactNode;
54-
theme?: Theme;
55+
theme?: PartialDeep<Theme>;
5556
}) => {
5657
const { children, theme: providedTheme } = props;
5758
const darkMode = useDarkMode(false);
58-
const theme = providedTheme ?? defaultTheme
59+
const theme = providedTheme ?? defaultTheme;
5960
return (
6061
<ThemeContext.Provider value={theme}>
61-
<StyledThemeProvider theme={ darkMode.value ? theme.dark : theme.light }>
62+
<StyledThemeProvider theme={darkMode.value ? theme.dark : theme.light}>
6263
{children}
6364
</StyledThemeProvider>
6465
</ThemeContext.Provider>
6566
);
66-
}
67+
};
6768

6869
export const getThemeValue = (key: keyof Palette) => {
69-
const theme = React.useContext(ThemeContext);
70+
const theme = React.useContext(ThemeContext) ?? defaultTheme;
7071
const darkMode = useDarkMode(false);
71-
return darkMode.value ? theme.dark[key] : theme.light[key];
72-
}
72+
return darkMode.value ? theme.dark![key] : theme.light![key];
73+
};

src/index.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
// MARK: Component imports
22

3-
export { Button } from './components/Button';
4-
export { TextField } from './components/TextField';
3+
export { Button, type ButtonProps } from './components/Button';
4+
export { TextField } from './components/TextField';
5+
export { Text, type TextProps } from './components/Text';
6+
export { ThemeProvider } from './components/ThemeProvider';

yarn.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10398,7 +10398,7 @@ type-fest@^2.0.0, type-fest@^2.12.2, type-fest@^2.19.0, type-fest@^2.5.0:
1039810398
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b"
1039910399
integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==
1040010400

10401-
type-fest@^3.8.0:
10401+
type-fest@^3.10.0, type-fest@^3.8.0:
1040210402
version "3.10.0"
1040310403
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-3.10.0.tgz#d75f17a22be8816aea6315ab2739fe1c0c211863"
1040410404
integrity sha512-hmAPf1datm+gt3c2mvu0sJyhFy6lTkIGf0GzyaZWxRLnabQfPUqg6tF95RPg6sLxKI7nFLGdFxBcf2/7+GXI+A==

0 commit comments

Comments
 (0)