├── jest.config.js
├── .yarnrc
├── src
├── contexts
│ ├── index.ts
│ └── auth
│ │ └── index.tsx
├── services
│ ├── index.ts
│ ├── socketType.ts
│ └── socketClient.ts
├── components
│ ├── custom-hooks
│ │ ├── index.ts
│ │ └── useDebounce.tsx
│ ├── design-system
│ │ ├── index.ts
│ │ ├── pagination
│ │ │ ├── styles.ts
│ │ │ └── index.tsx
│ │ ├── map
│ │ │ └── index.tsx
│ │ └── modal
│ │ │ └── index.tsx
│ ├── index.ts
│ └── layout
│ │ ├── index.tsx
│ │ ├── footer
│ │ └── index.tsx
│ │ └── header
│ │ └── navbar.tsx
├── global-states
│ ├── reducers
│ │ ├── auth
│ │ │ ├── index.ts
│ │ │ └── authReducer.ts
│ │ ├── index.ts
│ │ ├── admin
│ │ │ ├── index.ts
│ │ │ └── userReducer.ts
│ │ └── rootReducer.ts
│ ├── actions
│ │ ├── auth
│ │ │ ├── index.ts
│ │ │ └── authActionCreators.ts
│ │ ├── index.ts
│ │ └── admin
│ │ │ ├── index.ts
│ │ │ ├── usersActionCreators.ts
│ │ │ └── productsActionCreators.ts
│ ├── store
│ │ ├── index.ts
│ │ ├── configureStoreTem.js
│ │ └── configureStore.ts
│ └── index.ts
├── types
│ ├── index.ts
│ ├── admin
│ │ ├── index.ts
│ │ ├── products
│ │ │ ├── index.ts
│ │ │ └── _prototype.ts
│ │ └── users
│ │ │ ├── index.ts
│ │ │ ├── _prototype.ts
│ │ │ └── actionsType.tsx
│ └── auth
│ │ ├── index.ts
│ │ ├── _prototype.ts
│ │ └── actionsType.tsx
├── utils
│ ├── index.ts
│ ├── functions
│ │ └── helpers.ts
│ ├── schemaValidation
│ │ ├── product.ts
│ │ └── auth.ts
│ └── api
│ │ └── lib
│ │ └── axiosConfig.ts
├── page-components
│ ├── admin-page
│ │ ├── index.ts
│ │ ├── checkout-success-page
│ │ │ └── index.tsx
│ │ └── products
│ │ │ └── products.tsx
│ ├── index.tsx
│ │ └── cart-page.tsx
│ ├── verify-email-page
│ │ └── index.tsx
│ ├── forget-password-page
│ │ └── index.tsx
│ ├── login-page
│ │ └── index.tsx
│ ├── change-password-page
│ │ └── index.tsx
│ └── home-page
│ │ └── index.tsx
├── pages
│ ├── api
│ │ └── hello.ts
│ ├── login
│ │ └── index.tsx
│ ├── admin
│ │ ├── users
│ │ │ ├── users-ui.tsx
│ │ │ ├── add-user.tsx
│ │ │ ├── users-table.tsx
│ │ │ └── [userId].tsx
│ │ └── products
│ │ │ ├── index.tsx
│ │ │ ├── add-product.tsx
│ │ │ └── [productId].tsx
│ ├── signup
│ │ └── index.tsx
│ ├── checkout-success
│ │ └── index.tsx
│ ├── forget-password
│ │ └── index.tsx
│ ├── profile
│ │ └── [userId].tsx
│ ├── verify-email
│ │ └── index.tsx
│ ├── products
│ │ └── [productId].tsx
│ ├── reset-password
│ │ └── index.tsx
│ ├── index.tsx
│ ├── 404.tsx
│ ├── cart
│ │ └── index.tsx
│ ├── order
│ │ └── index.tsx
│ ├── checkout
│ │ └── index.tsx
│ ├── _document.tsx
│ └── _app.tsx
├── constants
│ └── index.ts
└── styles
│ └── globals.css
├── postcss.config.js
├── public
├── avatar
│ ├── tem2.png
│ ├── tem3.png
│ ├── about1.jpg
│ ├── avatar.avif
│ ├── avatrsm.avif
│ └── tem-img.png
├── icons
│ ├── 344403.png
│ ├── favicon.ico
│ └── favicons.ico
└── products
│ └── img1.webp
├── __mocks__
└── fileMock.js
├── .prettierrc
├── next-env.d.ts
├── jest.setup.js
├── __tests__
└── index.test.jsx
├── .eslintignore
├── .gitignore
├── .vscode
└── settings.json
├── .prettierignore
├── tailwind.config.js
├── jsconfig.json
├── tsconfig.json
├── next.config.js
├── LICENSE
├── package.json
├── .eslintrc.json
└── README.md
/jest.config.js:
--------------------------------------------------------------------------------
1 | // TODO
2 |
--------------------------------------------------------------------------------
/.yarnrc:
--------------------------------------------------------------------------------
1 | network-timeout 500000
--------------------------------------------------------------------------------
/src/contexts/index.ts:
--------------------------------------------------------------------------------
1 | export * from './auth';
2 |
--------------------------------------------------------------------------------
/src/services/index.ts:
--------------------------------------------------------------------------------
1 | export * from './socketClient';
2 |
--------------------------------------------------------------------------------
/src/components/custom-hooks/index.ts:
--------------------------------------------------------------------------------
1 | export * from './useDebounce';
2 |
--------------------------------------------------------------------------------
/src/global-states/reducers/auth/index.ts:
--------------------------------------------------------------------------------
1 | export * from './authReducer';
2 |
--------------------------------------------------------------------------------
/src/types/index.ts:
--------------------------------------------------------------------------------
1 | export * from './admin';
2 | export * from './auth';
3 |
--------------------------------------------------------------------------------
/src/global-states/actions/auth/index.ts:
--------------------------------------------------------------------------------
1 | export * from './authActionCreators';
2 |
--------------------------------------------------------------------------------
/src/types/admin/index.ts:
--------------------------------------------------------------------------------
1 | export * from './products';
2 | export * from './users';
3 |
--------------------------------------------------------------------------------
/src/global-states/actions/index.ts:
--------------------------------------------------------------------------------
1 | export * from './admin';
2 | export * from './auth';
3 |
--------------------------------------------------------------------------------
/src/types/auth/index.ts:
--------------------------------------------------------------------------------
1 | export * from './_prototype';
2 | export * from './actionsType';
3 |
--------------------------------------------------------------------------------
/src/global-states/reducers/index.ts:
--------------------------------------------------------------------------------
1 | export * from './admin';
2 | export * from './rootReducer';
3 |
--------------------------------------------------------------------------------
/src/types/admin/products/index.ts:
--------------------------------------------------------------------------------
1 | export * from './_prototype';
2 | export * from './actionsType';
3 |
--------------------------------------------------------------------------------
/src/types/admin/users/index.ts:
--------------------------------------------------------------------------------
1 | export * from './_prototype';
2 | export * from './actionsType';
3 |
--------------------------------------------------------------------------------
/src/global-states/store/index.ts:
--------------------------------------------------------------------------------
1 | export * from './configureStore';
2 | export * from './configureStoreTem';
3 |
--------------------------------------------------------------------------------
/src/global-states/index.ts:
--------------------------------------------------------------------------------
1 | export * from './actions';
2 | export * from './reducers';
3 | export * from './store';
4 |
--------------------------------------------------------------------------------
/src/global-states/reducers/admin/index.ts:
--------------------------------------------------------------------------------
1 | export * from './productReducer';
2 | export * from './userReducer';
3 |
--------------------------------------------------------------------------------
/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | };
7 |
--------------------------------------------------------------------------------
/public/avatar/tem2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/saddamarbaa/Ecommerce-website-next.js-typeScript/HEAD/public/avatar/tem2.png
--------------------------------------------------------------------------------
/public/avatar/tem3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/saddamarbaa/Ecommerce-website-next.js-typeScript/HEAD/public/avatar/tem3.png
--------------------------------------------------------------------------------
/src/components/design-system/index.ts:
--------------------------------------------------------------------------------
1 | export * from './map';
2 | export * from './modal';
3 | export * from './pagination';
4 |
--------------------------------------------------------------------------------
/src/components/index.ts:
--------------------------------------------------------------------------------
1 | export * from './custom-hooks';
2 | export * from './design-system';
3 | export * from './layout';
4 |
--------------------------------------------------------------------------------
/public/avatar/about1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/saddamarbaa/Ecommerce-website-next.js-typeScript/HEAD/public/avatar/about1.jpg
--------------------------------------------------------------------------------
/public/icons/344403.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/saddamarbaa/Ecommerce-website-next.js-typeScript/HEAD/public/icons/344403.png
--------------------------------------------------------------------------------
/public/icons/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/saddamarbaa/Ecommerce-website-next.js-typeScript/HEAD/public/icons/favicon.ico
--------------------------------------------------------------------------------
/src/global-states/actions/admin/index.ts:
--------------------------------------------------------------------------------
1 | export * from './productsActionCreators';
2 | export * from './usersActionCreators';
3 |
--------------------------------------------------------------------------------
/public/avatar/avatar.avif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/saddamarbaa/Ecommerce-website-next.js-typeScript/HEAD/public/avatar/avatar.avif
--------------------------------------------------------------------------------
/public/avatar/avatrsm.avif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/saddamarbaa/Ecommerce-website-next.js-typeScript/HEAD/public/avatar/avatrsm.avif
--------------------------------------------------------------------------------
/public/avatar/tem-img.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/saddamarbaa/Ecommerce-website-next.js-typeScript/HEAD/public/avatar/tem-img.png
--------------------------------------------------------------------------------
/public/icons/favicons.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/saddamarbaa/Ecommerce-website-next.js-typeScript/HEAD/public/icons/favicons.ico
--------------------------------------------------------------------------------
/public/products/img1.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/saddamarbaa/Ecommerce-website-next.js-typeScript/HEAD/public/products/img1.webp
--------------------------------------------------------------------------------
/__mocks__/fileMock.js:
--------------------------------------------------------------------------------
1 | // TODO
2 |
3 | // Read more at "Handling stylesheets and image imports" on https://nextjs.org/docs/testing
4 |
5 | module.exports = 'test-file-stub';
6 |
--------------------------------------------------------------------------------
/src/utils/index.ts:
--------------------------------------------------------------------------------
1 | export * from './api/lib/axiosConfig';
2 | export * from './functions/helpers';
3 | export * from './schemaValidation/auth';
4 | export * from './schemaValidation/product';
5 |
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "endOfLine": "auto",
3 | "printWidth": 100,
4 | "tabWidth": 2,
5 | "trailingComma": "es5",
6 | "singleQuote": true,
7 | "tailwindConfig": "./tailwind.config.js"
8 | }
9 |
--------------------------------------------------------------------------------
/next-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
133 | Don't fret! Just type in your email and we will send you a code to reset your 134 | password 135 |
136 |Or
189 | 190 |108 | {' '} 109 | No Products found 110 |
111 | )} 112 | {listIsError && ( 113 |162 | {' '} 163 | 164 | {product.ratings} 165 | 166 | {product.numberOfReviews} 167 |
168 |142 | {' '} 143 | No Products found 144 |
145 | )} 146 | {listIsError && ( 147 |210 | {' '} 211 | 212 | {product.ratings} 213 | 214 | {product.numberOfReviews} 215 |
216 |