Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Shadcn Admin v1 #52

Merged
merged 34 commits into from
Dec 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
c54c012
chore: upgrade Vite, Prettier, and ESLint
satnaing Nov 22, 2024
fbbc39e
chore: upgrade ShadcnUI and update related files
satnaing Nov 22, 2024
955b0c3
build: replace react-router with tanstack packages
satnaing Nov 22, 2024
3499908
refactor!: reorganize project to feature-based structure
satnaing Nov 22, 2024
e2ca9a4
fix: update overflow contents with scroll area
satnaing Nov 23, 2024
69be692
fix: language dropdown issue in account setting
satnaing Nov 23, 2024
595c6ad
feat: implement coming-soon page
satnaing Dec 6, 2024
a0de175
feat: implement custom sidebar trigger
satnaing Dec 6, 2024
7a76f06
refactor: update layouts and extract common layout
satnaing Dec 6, 2024
8624564
feat: implement global command/search
satnaing Dec 6, 2024
b682c6a
chore: ignore generate route in prettier and format codes
satnaing Dec 6, 2024
c4229c9
fix: stretch search bar only in mobile
satnaing Dec 6, 2024
7b461a6
feat: implement users CRUD
satnaing Dec 6, 2024
24349f5
feat: implement user invite dialog
satnaing Dec 6, 2024
24420ff
fix: z-axis overflow issue in header
satnaing Dec 6, 2024
618ff49
fix: layout shift issue in dropdown modal
satnaing Dec 6, 2024
dccfc9c
style: make the sidebar layout float and update spacing
satnaing Dec 7, 2024
09f178c
feat: implement task dialogs
satnaing Dec 7, 2024
703eab6
fix: add setTimeout in user dialog closing
satnaing Dec 7, 2024
8d3e811
fix: update user column hover and selected colors
satnaing Dec 7, 2024
e2a41d3
fix: layout wrap issue in tasks page on mobile
satnaing Dec 7, 2024
36e426d
fix: prevent card stretch in filtered app layout
satnaing Dec 7, 2024
1a21f5d
build(deps): upgrade minor & patch dependencies
satnaing Dec 7, 2024
0cf7e5f
build(deps): bump react-day-picker to v9
satnaing Dec 7, 2024
1372096
build(deps): bump vite to v6
satnaing Dec 7, 2024
b892ff6
build(deps): upgrade react to v19
satnaing Dec 7, 2024
bd6bc28
fix: update JSX types due to react 19
satnaing Dec 7, 2024
8ba6314
fix: remove form reset logic from useEffect in task import
satnaing Dec 7, 2024
cb55619
fix: card layout issue in app integrations page
satnaing Dec 7, 2024
019e1f5
fix: uncontrolled issue in account setting
satnaing Dec 7, 2024
867f6ed
hotfix: downgrade react-day-picker for now
satnaing Dec 7, 2024
4ecf083
docs: update README and picture
satnaing Dec 9, 2024
2dc6c20
bump: version 1.0.0-b5 → 1.0.0
satnaing Dec 9, 2024
7a9568e
chore: remove CHANGELOG from prettier formatting
satnaing Dec 9, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 0 additions & 23 deletions .eslintrc.cjs

This file was deleted.

9 changes: 6 additions & 3 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,14 @@
!/src
!index.html
!package.json
!tailwind.config.js
!tsconfig.json
!tsconfig.node.json
!vite.config.ts
!.prettierrc
!README.md
!CHANGELOG.md
!.eslintrc.cjs
!postcss.config.js
!eslint.config.js
!postcss.config.js

# Ignore auto generated routeTree.gen.ts
/src/routeTree.gen.ts
41 changes: 40 additions & 1 deletion .prettierrc
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,44 @@
"trailingComma": "es5",
"bracketSpacing": true,
"endOfLine": "lf",
"plugins": ["prettier-plugin-tailwindcss"]
"plugins": [
"prettier-plugin-tailwindcss",
"@trivago/prettier-plugin-sort-imports"
],
"importOrder": [
"^path$",
"^vite$",
"^@vitejs/(.*)$",
"^react$",
"^react-dom/client$",
"^react/(.*)$",
"^globals$",
"^zod$",
"^axios$",
"^date-fns$",
"^js-cookie$",
"^react-hook-form$",
"^use-intl$",
"^@radix-ui/(.*)$",
"^@hookform/resolvers/zod$",
"^@tanstack/react-query$",
"^@tanstack/react-router$",
"^@tanstack/react-table$",
"^@tabler/icons-react$",
"<THIRD_PARTY_MODULES>",
"^@/assets/(.*)",
"^@/api/(.*)$",
"^@/stores/(.*)$",
"^@/lib/(.*)$",
"^@/utils/(.*)$",
"^@/constants/(.*)$",
"^@/context/(.*)$",
"^@/hooks/(.*)$",
"^@/components/layouts/(.*)$",
"^@/components/ui/(.*)$",
"^@/components/errors/(.*)$",
"^@/components/(.*)$",
"^@/features/(.*)$",
"^[./]"
]
}
137 changes: 137 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
## v1.0.0 (2024-12-09)

### BREAKING CHANGE

- Restructured the entire folder
hierarchy to adopt a feature-based structure. This
change improves code modularity and maintainability
but introduces breaking changes.

### Feat

- implement task dialogs
- implement user invite dialog
- implement users CRUD
- implement global command/search
- implement custom sidebar trigger
- implement coming-soon page

### Fix

- uncontrolled issue in account setting
- card layout issue in app integrations page
- remove form reset logic from useEffect in task import
- update JSX types due to react 19
- prevent card stretch in filtered app layout
- layout wrap issue in tasks page on mobile
- update user column hover and selected colors
- add setTimeout in user dialog closing
- layout shift issue in dropdown modal
- z-axis overflow issue in header
- stretch search bar only in mobile
- language dropdown issue in account setting
- update overflow contents with scroll area

### Refactor

- update layouts and extract common layout
- reorganize project to feature-based structure

## v1.0.0-beta.5 (2024-11-11)

### Feat

- add multiple language support (#37)

### Fix

- ensure site syncs with system theme changes (#49)
- recent sales responsive on ipad view (#40)

## v1.0.0-beta.4 (2024-09-22)

### Feat

- upgrade theme button to theme dropdown (#33)
- **a11y**: add "Skip to Main" button to improve keyboard navigation (#27)

### Fix

- optimize onComplete/onIncomplete invocation (#32)
- solve asChild attribute issue in custom button (#31)
- improve custom Button component (#28)

## v1.0.0-beta.3 (2024-08-25)

### Feat

- implement chat page (#21)
- add 401 error page (#12)
- implement apps page
- add otp page

### Fix

- prevent focus zoom on mobile devices (#20)
- resolve eslint script issue (#18)
- **a11y**: update default aria-label of each pin-input
- resolve OTP paste issue in multi-digit pin-input
- update layouts and solve overflow issues (#11)
- sync pin inputs programmatically

## v1.0.0-beta.2 (2024-03-18)

### Feat

- implement custom pin-input component (#2)

## v1.0.0-beta.1 (2024-02-08)

### Feat

- update theme-color meta tag when theme is updated
- add coming soon page in broken pages
- implement tasks table and page
- add remaining settings pages
- add example error page for settings
- update general error page to be more flexible
- implement settings layout and settings profile page
- add error pages
- add password-input custom component
- add sign-up page
- add forgot-password page
- add box sign in page
- add email + password sign in page
- make sidebar responsive and accessible
- add tailwind prettier plugin
- make sidebar collapsed state in local storage
- add check current active nav hook
- add loader component ui
- update dropdown nav by default if child is active
- add main-panel in dashboard
- **ui**: add dark mode
- **ui**: implement side nav ui

### Fix

- update incorrect overflow side nav height
- exclude shadcn components from linting and remove unused props
- solve text overflow issue when nav text is long
- replace nav with dropdown in mobile topnav
- make sidebar scrollable when overflow
- update nav link keys
- **ui**: update label style

### Refactor

- move password-input component into custom component dir
- add custom button component
- extract redundant codes into layout component
- update react-router to use new api for routing
- update main panel layout
- update major layouts and styling
- update main panel to be responsive
- update sidebar collapsed state to false in mobile
- update sidebar logo and title
- **ui**: remove unnecessary spacing
- remove unused files
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ I've been creating dashboard UIs at work and for my personal projects. I always
- Light/dark mode
- Responsive
- Accessible
- Sidebar and header layouts
- With built-in Sidebar component
- Global Search Command
- 10+ pages
- Extra custom components

Expand All @@ -23,7 +24,7 @@ I've been creating dashboard UIs at work and for my personal projects. I always

**Build Tool:** [Vite](https://vitejs.dev/)

**Routing:** [React Router](https://reactrouter.com/en/main)
**Routing:** [TanStack Router](https://tanstack.com/router/latest)

**Type Checking:** [TypeScript](https://www.typescriptlang.org/)

Expand Down
8 changes: 6 additions & 2 deletions components.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@
},
"aliases": {
"components": "@/components",
"utils": "@/lib/utils"
}
"utils": "@/lib/utils",
"ui": "@/components/ui",
"lib": "@/lib",
"hooks": "@/hooks"
},
"iconLibrary": "lucide"
}
7 changes: 7 additions & 0 deletions cz.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
commitizen:
name: cz_conventional_commits
tag_format: v$version
update_changelog_on_bump: true
version_provider: npm
version_scheme: semver
34 changes: 34 additions & 0 deletions eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import globals from 'globals'
import js from '@eslint/js'
import pluginQuery from '@tanstack/eslint-plugin-query'
import reactHooks from 'eslint-plugin-react-hooks'
import reactRefresh from 'eslint-plugin-react-refresh'
import tseslint from 'typescript-eslint'

export default tseslint.config(
{ ignores: ['dist', 'src/components/ui'] },
{
extends: [
js.configs.recommended,
...tseslint.configs.recommended,
...pluginQuery.configs['flat/recommended'],
],
files: ['**/*.{ts,tsx}'],
languageOptions: {
ecmaVersion: 2020,
globals: globals.browser,
},
plugins: {
'react-hooks': reactHooks,
'react-refresh': reactRefresh,
},
rules: {
...reactHooks.configs.recommended.rules,
'react-refresh/only-export-components': [
'warn',
{ allowConstantExport: true },
],
'no-console': 'error',
},
}
)
Loading
Loading