-
-
-
-
{firstThreeWords}
-
-
{title}
-
-
-
+// const BreadCrumb = ({title, innerTitle}) => {
+// const firstThreeWords = title?.split(' ').slice(0, 1);
+// return (
+//
+//
+//
+//
+//
+//
{firstThreeWords}
+//
+// - Home|
+// - {innerTitle}
+//
+//
{title}
+//
+//
+//
+//
+//
+// );
+// };
+
+// export default BreadCrumb;
+
+
+const BreadCrumb = ({ title, innerTitle }) => {
+ const firstThreeWords = title?.split(' ').slice(0, 1);
+ return (
+
+
+
+
+
+
{firstThreeWords}
+
+ -
+ Home
+ |
+
+ - {innerTitle}
+
+
{title}
+
- );
+
+
+ );
};
-export default BreadCrumb;
\ No newline at end of file
+export default BreadCrumb;
diff --git a/src/components/pages/common/skill-bar.jsx b/src/components/pages/common/skill-bar.jsx
index da5ddf6..140136b 100644
--- a/src/components/pages/common/skill-bar.jsx
+++ b/src/components/pages/common/skill-bar.jsx
@@ -1,25 +1,57 @@
-import { useState } from "react";
-import CountUp from 'react-countup';
-import ScrollTrigger from "react-scroll-trigger";
-import ReactSkillBar from 'react-skillbars';
+// import { useState } from "react";
+// import CountUp from 'react-countup';
+// import ScrollTrigger from "react-scroll-trigger";
+// import ReactSkillBar from 'react-skillbars';
-const SkillBarItem = ({countUp}) => {
- const [skillBar, setSkillBar] = useState(false);
- const skillLevel = [
- { type: 'one', level: countUp }
- ];
- return (
- <>
-
setSkillBar(true)} onExit={()=> setSkillBar(false)}>
-
- {skillBar && }
-
- {skillBar && }%
-
-
-
- >
- );
+// const SkillBarItem = ({countUp}) => {
+// const [skillBar, setSkillBar] = useState(false);
+// const skillLevel = [
+// { type: 'one', level: countUp }
+// ];
+// return (
+// <>
+//
setSkillBar(true)} onExit={()=> setSkillBar(false)}>
+//
+// {skillBar && }
+//
+// {skillBar && }%
+//
+//
+//
+// >
+// );
+// };
+
+// export default SkillBarItem;
+
+
+import { useState, useEffect } from "react";
+import CountUp from "react-countup";
+import { useInView } from "react-intersection-observer";
+import ReactSkillBar from "react-skillbars";
+
+const SkillBarItem = ({ countUp }) => {
+ const [skillBar, setSkillBar] = useState(false);
+ const { ref, inView } = useInView({ triggerOnce: true });
+ const skillLevel = [{ type: "one", level: countUp }];
+
+ useEffect(() => {
+ if (inView) setSkillBar(true);
+ }, [inView]);
+
+ return (
+
+ {skillBar && (
+
+ )}
+
+
+ {skillBar && }
+
+ %
+
+
+ );
};
-export default SkillBarItem;
\ No newline at end of file
+export default SkillBarItem;
diff --git a/src/components/pages/error/index.jsx b/src/components/pages/error/index.jsx
index e25f458..1aa5de6 100644
--- a/src/components/pages/error/index.jsx
+++ b/src/components/pages/error/index.jsx
@@ -1,9 +1,9 @@
"use client";
-import SEO from '@/src/components/data/seo';
-import HeaderThree from '@/src/components/layout/header/header-three';
+import SEO from '@/components/data/seo';
+import HeaderThree from '@/components/layout/header/header-three';
import BreadCrumb from '../common/breadcrumb';
import Error from './error';
-import FooterThree from '@/src/components/layout/footer/footer-three';
+import FooterThree from '@/components/layout/footer/footer-three';
import ScrollToTop from '../common/scroll/scroll-to-top';
const ErrorPage = () => {
diff --git a/src/payload-types.ts b/src/payload-types.ts
new file mode 100644
index 0000000..a9606af
--- /dev/null
+++ b/src/payload-types.ts
@@ -0,0 +1,299 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * This file was automatically generated by Payload.
+ * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config,
+ * and re-run `payload generate:types` to regenerate this file.
+ */
+
+/**
+ * Supported timezones in IANA format.
+ *
+ * This interface was referenced by `Config`'s JSON-Schema
+ * via the `definition` "supportedTimezones".
+ */
+export type SupportedTimezones =
+ | 'Pacific/Midway'
+ | 'Pacific/Niue'
+ | 'Pacific/Honolulu'
+ | 'Pacific/Rarotonga'
+ | 'America/Anchorage'
+ | 'Pacific/Gambier'
+ | 'America/Los_Angeles'
+ | 'America/Tijuana'
+ | 'America/Denver'
+ | 'America/Phoenix'
+ | 'America/Chicago'
+ | 'America/Guatemala'
+ | 'America/New_York'
+ | 'America/Bogota'
+ | 'America/Caracas'
+ | 'America/Santiago'
+ | 'America/Buenos_Aires'
+ | 'America/Sao_Paulo'
+ | 'Atlantic/South_Georgia'
+ | 'Atlantic/Azores'
+ | 'Atlantic/Cape_Verde'
+ | 'Europe/London'
+ | 'Europe/Berlin'
+ | 'Africa/Lagos'
+ | 'Europe/Athens'
+ | 'Africa/Cairo'
+ | 'Europe/Moscow'
+ | 'Asia/Riyadh'
+ | 'Asia/Dubai'
+ | 'Asia/Baku'
+ | 'Asia/Karachi'
+ | 'Asia/Tashkent'
+ | 'Asia/Calcutta'
+ | 'Asia/Dhaka'
+ | 'Asia/Almaty'
+ | 'Asia/Jakarta'
+ | 'Asia/Bangkok'
+ | 'Asia/Shanghai'
+ | 'Asia/Singapore'
+ | 'Asia/Tokyo'
+ | 'Asia/Seoul'
+ | 'Australia/Brisbane'
+ | 'Australia/Sydney'
+ | 'Pacific/Guam'
+ | 'Pacific/Noumea'
+ | 'Pacific/Auckland'
+ | 'Pacific/Fiji';
+
+export interface Config {
+ auth: {
+ users: UserAuthOperations;
+ };
+ blocks: {};
+ collections: {
+ users: User;
+ media: Media;
+ 'payload-locked-documents': PayloadLockedDocument;
+ 'payload-preferences': PayloadPreference;
+ 'payload-migrations': PayloadMigration;
+ };
+ collectionsJoins: {};
+ collectionsSelect: {
+ users: UsersSelect
| UsersSelect;
+ media: MediaSelect | MediaSelect;
+ 'payload-locked-documents': PayloadLockedDocumentsSelect | PayloadLockedDocumentsSelect;
+ 'payload-preferences': PayloadPreferencesSelect | PayloadPreferencesSelect;
+ 'payload-migrations': PayloadMigrationsSelect | PayloadMigrationsSelect;
+ };
+ db: {
+ defaultIDType: string;
+ };
+ globals: {};
+ globalsSelect: {};
+ locale: null;
+ user: User & {
+ collection: 'users';
+ };
+ jobs: {
+ tasks: unknown;
+ workflows: unknown;
+ };
+}
+export interface UserAuthOperations {
+ forgotPassword: {
+ email: string;
+ password: string;
+ };
+ login: {
+ email: string;
+ password: string;
+ };
+ registerFirstUser: {
+ email: string;
+ password: string;
+ };
+ unlock: {
+ email: string;
+ password: string;
+ };
+}
+/**
+ * This interface was referenced by `Config`'s JSON-Schema
+ * via the `definition` "users".
+ */
+export interface User {
+ id: string;
+ updatedAt: string;
+ createdAt: string;
+ email: string;
+ resetPasswordToken?: string | null;
+ resetPasswordExpiration?: string | null;
+ salt?: string | null;
+ hash?: string | null;
+ loginAttempts?: number | null;
+ lockUntil?: string | null;
+ sessions?:
+ | {
+ id: string;
+ createdAt?: string | null;
+ expiresAt: string;
+ }[]
+ | null;
+ password?: string | null;
+}
+/**
+ * This interface was referenced by `Config`'s JSON-Schema
+ * via the `definition` "media".
+ */
+export interface Media {
+ id: string;
+ alt: string;
+ updatedAt: string;
+ createdAt: string;
+ url?: string | null;
+ thumbnailURL?: string | null;
+ filename?: string | null;
+ mimeType?: string | null;
+ filesize?: number | null;
+ width?: number | null;
+ height?: number | null;
+ focalX?: number | null;
+ focalY?: number | null;
+}
+/**
+ * This interface was referenced by `Config`'s JSON-Schema
+ * via the `definition` "payload-locked-documents".
+ */
+export interface PayloadLockedDocument {
+ id: string;
+ document?:
+ | ({
+ relationTo: 'users';
+ value: string | User;
+ } | null)
+ | ({
+ relationTo: 'media';
+ value: string | Media;
+ } | null);
+ globalSlug?: string | null;
+ user: {
+ relationTo: 'users';
+ value: string | User;
+ };
+ updatedAt: string;
+ createdAt: string;
+}
+/**
+ * This interface was referenced by `Config`'s JSON-Schema
+ * via the `definition` "payload-preferences".
+ */
+export interface PayloadPreference {
+ id: string;
+ user: {
+ relationTo: 'users';
+ value: string | User;
+ };
+ key?: string | null;
+ value?:
+ | {
+ [k: string]: unknown;
+ }
+ | unknown[]
+ | string
+ | number
+ | boolean
+ | null;
+ updatedAt: string;
+ createdAt: string;
+}
+/**
+ * This interface was referenced by `Config`'s JSON-Schema
+ * via the `definition` "payload-migrations".
+ */
+export interface PayloadMigration {
+ id: string;
+ name?: string | null;
+ batch?: number | null;
+ updatedAt: string;
+ createdAt: string;
+}
+/**
+ * This interface was referenced by `Config`'s JSON-Schema
+ * via the `definition` "users_select".
+ */
+export interface UsersSelect {
+ updatedAt?: T;
+ createdAt?: T;
+ email?: T;
+ resetPasswordToken?: T;
+ resetPasswordExpiration?: T;
+ salt?: T;
+ hash?: T;
+ loginAttempts?: T;
+ lockUntil?: T;
+ sessions?:
+ | T
+ | {
+ id?: T;
+ createdAt?: T;
+ expiresAt?: T;
+ };
+}
+/**
+ * This interface was referenced by `Config`'s JSON-Schema
+ * via the `definition` "media_select".
+ */
+export interface MediaSelect {
+ alt?: T;
+ updatedAt?: T;
+ createdAt?: T;
+ url?: T;
+ thumbnailURL?: T;
+ filename?: T;
+ mimeType?: T;
+ filesize?: T;
+ width?: T;
+ height?: T;
+ focalX?: T;
+ focalY?: T;
+}
+/**
+ * This interface was referenced by `Config`'s JSON-Schema
+ * via the `definition` "payload-locked-documents_select".
+ */
+export interface PayloadLockedDocumentsSelect {
+ document?: T;
+ globalSlug?: T;
+ user?: T;
+ updatedAt?: T;
+ createdAt?: T;
+}
+/**
+ * This interface was referenced by `Config`'s JSON-Schema
+ * via the `definition` "payload-preferences_select".
+ */
+export interface PayloadPreferencesSelect {
+ user?: T;
+ key?: T;
+ value?: T;
+ updatedAt?: T;
+ createdAt?: T;
+}
+/**
+ * This interface was referenced by `Config`'s JSON-Schema
+ * via the `definition` "payload-migrations_select".
+ */
+export interface PayloadMigrationsSelect {
+ name?: T;
+ batch?: T;
+ updatedAt?: T;
+ createdAt?: T;
+}
+/**
+ * This interface was referenced by `Config`'s JSON-Schema
+ * via the `definition` "auth".
+ */
+export interface Auth {
+ [k: string]: unknown;
+}
+
+
+declare module 'payload' {
+ export interface GeneratedTypes extends Config {}
+}
\ No newline at end of file
diff --git a/src/payload.config.ts b/src/payload.config.ts
new file mode 100644
index 0000000..0bc1ea5
--- /dev/null
+++ b/src/payload.config.ts
@@ -0,0 +1,37 @@
+// storage-adapter-import-placeholder
+import { mongooseAdapter } from '@payloadcms/db-mongodb'
+import { payloadCloudPlugin } from '@payloadcms/payload-cloud'
+import { lexicalEditor } from '@payloadcms/richtext-lexical'
+import path from 'path'
+import { buildConfig } from 'payload'
+import { fileURLToPath } from 'url'
+import sharp from 'sharp'
+
+import { Users } from './collections/Users'
+import { Media } from './collections/Media'
+
+const filename = fileURLToPath(import.meta.url)
+const dirname = path.dirname(filename)
+
+export default buildConfig({
+ admin: {
+ user: Users.slug,
+ importMap: {
+ baseDir: path.resolve(dirname),
+ },
+ },
+ collections: [Users, Media],
+ editor: lexicalEditor(),
+ secret: process.env.PAYLOAD_SECRET || '',
+ typescript: {
+ outputFile: path.resolve(dirname, 'payload-types.ts'),
+ },
+ db: mongooseAdapter({
+ url: process.env.DATABASE_URI || '',
+ }),
+ sharp,
+ plugins: [
+ payloadCloudPlugin(),
+ // storage-adapter-placeholder
+ ],
+})
diff --git a/tsconfig.json b/tsconfig.json
index c04b195..ea2ccec 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -32,13 +32,16 @@
// "node_modules"
// ]
// }
-
-
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
- "@/*": ["src/*"]
+ "@/*": [
+ "src/*"
+ ],
+ "@payload-config": [
+ "./src/payload.config.ts"
+ ]
},
"lib": [
"dom",
@@ -60,7 +63,8 @@
{
"name": "next"
}
- ]
+ ],
+ "target": "ES2017"
},
"include": [
"next-env.d.ts",
@@ -71,5 +75,4 @@
"exclude": [
"node_modules"
]
-}
-
+}
\ No newline at end of file