diff --git a/README.md b/README.md
index 194f456..5f9c6af 100644
--- a/README.md
+++ b/README.md
@@ -147,14 +147,14 @@ const config = {
snippetVersion: 6,
},
themeConfig: {
- default: 'light',
+ defaultTheme: 'light',
// Hides the theme change switch
// Useful if you want to support a single color mode
disableSwitch: false,
// Should we use the prefers-color-scheme media-query,
- // using user system preferences, instead of the hardcoded default
+ // using user system preferences, instead of the hardcoded defaultTheme
respectPrefersColorScheme: true,
// Available themes. To remove any theme, exclude from here.
@@ -220,7 +220,7 @@ The default theme can be specified.
module.exports = {
// ...
themeConfig: {
- default: 'light',
+ defaultTheme: 'light',
// ...
},
};
diff --git a/src/components/GitProfile.jsx b/src/components/GitProfile.jsx
index 922bbe4..b02ad6d 100644
--- a/src/components/GitProfile.jsx
+++ b/src/components/GitProfile.jsx
@@ -311,7 +311,7 @@ GitProfile.propTypes = {
snippetVersion: PropTypes.number,
}),
themeConfig: PropTypes.shape({
- default: PropTypes.string.isRequired,
+ defaultTheme: PropTypes.string.isRequired,
disableSwitch: PropTypes.bool.isRequired,
respectPrefersColorScheme: PropTypes.bool.isRequired,
themes: PropTypes.array.isRequired,
diff --git a/src/components/theme-changer/index.jsx b/src/components/theme-changer/index.jsx
index 00ed5f1..0e5c92d 100644
--- a/src/components/theme-changer/index.jsx
+++ b/src/components/theme-changer/index.jsx
@@ -27,7 +27,7 @@ const ThemeChanger = ({ theme, setTheme, loading, themeConfig }) => {
{loading
? skeleton({ width: 'w-16', height: 'h-5' })
- : theme === themeConfig.default
+ : theme === themeConfig.defaultTheme
? 'Default'
: theme}
@@ -61,9 +61,9 @@ const ThemeChanger = ({ theme, setTheme, loading, themeConfig }) => {
>
{[
- themeConfig.default,
+ themeConfig.defaultTheme,
...themeConfig.themes.filter(
- (item) => item !== themeConfig.default
+ (item) => item !== themeConfig.defaultTheme
),
].map((item, index) => (
-
@@ -73,7 +73,7 @@ const ThemeChanger = ({ theme, setTheme, loading, themeConfig }) => {
className={`${theme === item ? 'active' : ''}`}
>
- {item === themeConfig.default ? 'Default' : item}
+ {item === themeConfig.defaultTheme ? 'Default' : item}
diff --git a/src/helpers/utils.jsx b/src/helpers/utils.jsx
index 326a651..3f59b15 100644
--- a/src/helpers/utils.jsx
+++ b/src/helpers/utils.jsx
@@ -3,7 +3,7 @@ import { hotjar } from 'react-hotjar';
export const getInitialTheme = (themeConfig) => {
if (themeConfig.disableSwitch) {
- return themeConfig.default;
+ return themeConfig.defaultTheme;
}
if (
@@ -19,10 +19,10 @@ export const getInitialTheme = (themeConfig) => {
if (themeConfig.respectPrefersColorScheme && !themeConfig.disableSwitch) {
return window.matchMedia('(prefers-color-scheme: dark)').matches
? 'dark'
- : themeConfig.default;
+ : themeConfig.defaultTheme;
}
- return themeConfig.default;
+ return themeConfig.defaultTheme;
};
export const skeleton = ({
@@ -113,7 +113,7 @@ export const constructConfigWithMissingValues = (config) => {
if (typeof config.themeConfig === 'undefined') {
const themeConfig = {
- default: 'corporate',
+ defaultTheme: 'corporate',
disableSwitch: false,
respectPrefersColorScheme: false,
themes: [
diff --git a/types/index.d.ts b/types/index.d.ts
index cbdd4ac..38b3e38 100644
--- a/types/index.d.ts
+++ b/types/index.d.ts
@@ -4,7 +4,7 @@
import { Component } from 'react';
-interface Github {
+export interface Github {
/**
* GitHub org/user name
*/
@@ -38,7 +38,7 @@ interface Github {
};
}
-interface Social {
+export interface Social {
/**
* LinkedIn
*/
@@ -90,7 +90,57 @@ interface Social {
email?: string;
}
-interface Config {
+export interface Blog {
+ /**
+ * medium | dev.to
+ */
+ source: string;
+
+ /**
+ * Username
+ */
+ username: string;
+
+ /**
+ * How many posts to display
+ *
+ * Max is 10
+ */
+ limit: number;
+}
+
+export interface GoogleAnalytics {
+ /**
+ * GA3 tracking id/GA4 tag id UA-XXXXXXXXX-X | G-XXXXXXXXXX
+ */
+ id: string;
+}
+
+export interface Hotjar {
+ /**
+ * Hotjar id
+ */
+ id: string;
+
+ /**
+ * Snippet Version
+ */
+ snippetVersion: number;
+}
+
+export interface ThemeConfig {
+ /**
+ * Default theme
+ */
+ defaultTheme: string;
+
+ /**
+ * Snippet Version
+ */
+ snippetVersion: number;
+}
+
+export interface Config {
/**
* GitHub Config
*/
@@ -100,9 +150,44 @@ interface Config {
* Social links
*/
social?: Social;
+
+ /**
+ * Skill list
+ */
+ skills?: Array;
+
+ /**
+ * Experience list
+ */
+ experiences?: Array;
+
+ /**
+ * Education list
+ */
+ education?: Array;
+
+ /**
+ * Blog config
+ */
+ blog?: Blog;
+
+ /**
+ * Google Analytics config
+ */
+ googleAnalytics?: GoogleAnalytics;
+
+ /**
+ * Hotjar config
+ */
+ hotjar?: Hotjar;
+
+ /**
+ * Theme config
+ */
+ themeConfig?: ThemeConfig;
}
-interface GitProfileProps {
+export interface GitProfileProps {
/**
* Config values
*/