{item}
64 |├── .eslintrc.cjs ├── .gitignore ├── README.md ├── index.html ├── package-lock.json ├── package.json ├── postcss.config.js ├── public ├── assets │ ├── avatarresi.png │ ├── homepage.jpg │ ├── homepage0.png │ ├── homepage2.jpg │ ├── homepage3.jpg │ ├── homepage4.png │ ├── homepage5.png │ ├── stars.jpg │ └── starso.jpg └── vite.svg ├── src ├── App.css ├── App.tsx ├── Folder.tsx ├── Layout.tsx ├── Pages │ └── Home.tsx ├── Provider │ └── TabProvider.tsx ├── assets │ └── react.svg ├── components │ ├── Apps │ │ ├── Github │ │ │ ├── Content.tsx │ │ │ ├── RepoItem.tsx │ │ │ └── index.tsx │ │ ├── Notepad │ │ │ └── index.tsx │ │ ├── Photos │ │ │ ├── data.ts │ │ │ └── index.tsx │ │ ├── Todo │ │ │ ├── Content.tsx │ │ │ └── index.tsx │ │ ├── View │ │ │ ├── FolderView.tsx │ │ │ └── ViewNav.tsx │ │ └── Weather │ │ │ ├── Content.tsx │ │ │ ├── DayCard.tsx │ │ │ ├── Display.tsx │ │ │ ├── MiniDisplay.tsx │ │ │ └── index.tsx │ ├── ContextMenu │ │ ├── ContextItem.tsx │ │ └── index.tsx │ ├── Day.tsx │ ├── Explorer │ │ ├── About │ │ │ └── index.tsx │ │ ├── Breadcrumb.tsx │ │ ├── Documents │ │ │ └── index.tsx │ │ ├── ExplorerNav.tsx │ │ ├── ExplorerView.tsx │ │ ├── Links │ │ │ ├── index.tsx │ │ │ └── links.ts │ │ ├── NavBars.tsx │ │ ├── Pictures │ │ │ └── index.tsx │ │ └── Projects │ │ │ ├── Detail │ │ │ ├── Images.tsx │ │ │ └── index.tsx │ │ │ ├── Menu.tsx │ │ │ ├── ProjectItem.tsx │ │ │ ├── Row.tsx │ │ │ ├── data.ts │ │ │ ├── index.tsx │ │ │ └── types.ts │ ├── Loader.tsx │ ├── LockScreen.tsx │ ├── Modal │ │ ├── Button.tsx │ │ ├── Content.tsx │ │ ├── Footer.tsx │ │ ├── Overlay.tsx │ │ └── index.tsx │ ├── Start │ │ ├── StartItem.tsx │ │ ├── data.ts │ │ └── index.tsx │ └── Taskbar │ │ ├── Battery.tsx │ │ ├── ItemsList.tsx │ │ ├── Network.tsx │ │ ├── StatusBar.tsx │ │ ├── Taskbar.tsx │ │ ├── TaskbarItem.tsx │ │ └── Time.tsx ├── data │ └── notes.ts ├── hooks │ ├── useOutsideClick.ts │ └── useTabStorage.ts ├── index.css ├── main.tsx ├── react-query │ └── queries │ │ └── index.ts ├── services │ ├── github │ │ ├── github.ts │ │ └── types.ts │ └── weather │ │ ├── index.ts │ │ └── types.ts ├── utils │ └── date.ts └── vite-env.d.ts ├── tailwind.config.js ├── tsconfig.json ├── tsconfig.node.json └── vite.config.ts /.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { browser: true, es2020: true }, 4 | extends: [ 5 | "eslint:recommended", 6 | "plugin:@typescript-eslint/recommended", 7 | "plugin:react-hooks/recommended", 8 | "plugin:@tanstack/eslint-plugin-query/recommended", 9 | ], 10 | ignorePatterns: ["dist", ".eslintrc.cjs"], 11 | parser: "@typescript-eslint/parser", 12 | plugins: ["react-refresh", "@tanstack/query"], 13 | rules: { 14 | "react-refresh/only-export-components": [ 15 | "warn", 16 | { allowConstantExport: true }, 17 | ], 18 | "no-unused-vars": "warn", 19 | "@typescript-eslint/no-unused-vars": "warn", 20 | }, 21 | }; 22 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | .note 26 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # React + TypeScript + Vite 2 | 3 | This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. 4 | 5 | Currently, two official plugins are available: 6 | 7 | - [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh 8 | - [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh 9 | 10 | ## Expanding the ESLint configuration 11 | 12 | If you are developing a production application, we recommend updating the configuration to enable type aware lint rules: 13 | 14 | - Configure the top-level `parserOptions` property like this: 15 | 16 | ```js 17 | export default { 18 | // other rules... 19 | parserOptions: { 20 | ecmaVersion: 'latest', 21 | sourceType: 'module', 22 | project: ['./tsconfig.json', './tsconfig.node.json'], 23 | tsconfigRootDir: __dirname, 24 | }, 25 | } 26 | ``` 27 | 28 | - Replace `plugin:@typescript-eslint/recommended` to `plugin:@typescript-eslint/recommended-type-checked` or `plugin:@typescript-eslint/strict-type-checked` 29 | - Optionally add `plugin:@typescript-eslint/stylistic-type-checked` 30 | - Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and add `plugin:react/recommended` & `plugin:react/jsx-runtime` to the `extends` list 31 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 |{item}
64 |23 | Created at: 24 | {new Date(repo.updated_at).toLocaleDateString()} 25 |
26 |27 | Last Updated: 28 | {new Date(repo.updated_at).toLocaleDateString()} 29 |
30 |{pathToDisplay}
38 |42 | x 43 |
44 |{props.top || "Today"}
13 |18 | {props.bottom || "Mist"} 19 |
20 | )} 21 |{children}
19 |{title}
51 |{children}
60 |{children}
; 64 | } 65 | 66 | type TitleProps = { 67 | children: React.ReactNode; 68 | }; 69 | 70 | function Title({ children }: TitleProps) { 71 | return{children}
; 72 | } 73 | 74 | Row.Item = Item; 75 | Row.Title = Title; 76 | 77 | export default Row; 78 | -------------------------------------------------------------------------------- /src/components/Explorer/Projects/data.ts: -------------------------------------------------------------------------------- 1 | import { Project } from "./types"; 2 | 3 | export const projects: Project[] = [ 4 | { 5 | id: 1, 6 | projectName: "Task Mate", 7 | status: true, 8 | platform: "Web", 9 | createdAt: "2023-05-01T10:15:30Z", 10 | updatedAt: "2023-06-01T11:00:00Z", 11 | }, 12 | { 13 | id: 2, 14 | projectName: "Portfolio", 15 | status: true, 16 | platform: "Web", 17 | createdAt: "2023-04-15T08:20:45Z", 18 | updatedAt: "2023-05-20T09:30:25Z", 19 | }, 20 | { 21 | id: 3, 22 | projectName: "Movie Plus", 23 | status: true, 24 | platform: "Web", 25 | createdAt: "2023-03-10T14:25:10Z", 26 | updatedAt: "2023-04-15T16:45:50Z", 27 | }, 28 | { 29 | id: 4, 30 | projectName: "Kairos", 31 | status: true, 32 | platform: "Web", 33 | createdAt: "2023-02-20T09:10:55Z", 34 | updatedAt: "2023-03-22T10:50:30Z", 35 | }, 36 | { 37 | id: 5, 38 | projectName: "Typy", 39 | status: true, 40 | platform: "Web", 41 | createdAt: "2023-01-30T07:35:20Z", 42 | updatedAt: "2023-02-25T08:55:40Z", 43 | }, 44 | { 45 | id: 6, 46 | projectName: "TaskStar", 47 | status: true, 48 | platform: "Web", 49 | createdAt: "2023-01-30T07:35:20Z", 50 | updatedAt: "2023-02-25T08:55:40Z", 51 | }, 52 | { 53 | id: 7, 54 | projectName: "Menu Extraction", 55 | status: true, 56 | platform: "Web", 57 | createdAt: "2023-01-30T07:35:20Z", 58 | updatedAt: "2023-02-25T08:55:40Z", 59 | }, 60 | { 61 | id: 8, 62 | projectName: "Eshop", 63 | status: true, 64 | platform: "Web", 65 | createdAt: "2023-01-30T07:35:20Z", 66 | updatedAt: "2023-02-25T08:55:40Z", 67 | }, 68 | { 69 | id: 9, 70 | projectName: "Eshop Backend", 71 | status: true, 72 | platform: "Backend", 73 | createdAt: "2023-01-30T07:35:20Z", 74 | updatedAt: "2023-02-25T08:55:40Z", 75 | }, 76 | { 77 | id: 10, 78 | projectName: "Quote Generator", 79 | status: true, 80 | platform: "Web", 81 | createdAt: "2023-01-30T07:35:20Z", 82 | updatedAt: "2023-02-25T08:55:40Z", 83 | }, 84 | ]; 85 | -------------------------------------------------------------------------------- /src/components/Explorer/Projects/index.tsx: -------------------------------------------------------------------------------- 1 | import Row from "@/components/Explorer/Projects/Row"; 2 | import { projects } from "@/components/Explorer/Projects/data"; 3 | import { getFormattedDate } from "@/utils/date"; 4 | import { useNavigate } from "react-router-dom"; 5 | 6 | function Projects() { 7 | const navigate = useNavigate(); 8 | function getStatusImg(status: boolean) { 9 | return status ? activeImg : inactiveImg; 10 | } 11 | 12 | return ( 13 |{formattedDate}
33 |🤩 Double Click to unlock
39 | {weather && ( 40 |{title}
11 |Skills
37 |Recently used tools
47 |Gadisa Teklu
68 |{time}
23 |{getFormattedDate()}
24 |Project Title: Task Mate
7 |Project Description: Task Mate is a task management application designed to help users organize and track their tasks efficiently.
8 |Status: Completed
9 |Type: Web Application
10 |Platform: Web
11 |Created At: 5/1/2023, 1:15:30 PM
12 |Updated At: 6/1/2023, 2:00:00 PM
13 |Technologies Used: HTML, CSS, JavaScript, React, Node.js, MongoDB
14 |Features:
15 |Screenshots or Demos:
23 |Code Repository: GitHub Repository
29 |Documentation: Project Documentation
30 |Contributors:
31 |License: MIT License
36 |Challenges:
37 |Future Plans:
42 |