Files
goodgo-platform/package.json
Ho Ngoc Hai 9bb4c42f84 feat(web): listings page — ticker-style DataTable với toggle card view
Tạo mới trang /listings dạng bảng ticker-style theo spec TEC-3034.

- DataTable compact (row 36px, sticky header, alternating rows)
- Cột: #, Mã (GG-xxx), Quận, Loại, Giá, Δ30d, DT m², KL/Views
- Sortable theo Giá, Δ30d, DT m², KL/Views
- Filter inline: Loại giao dịch, Loại BĐS, Quận, Khoảng giá
- Toggle view: Table (default) ↔ Card grid (legacy component cũ)
- Pagination restyle compact, giữ nguyên API params
- Click row → navigate to detail page
- Dùng DataTable + PriceDelta từ @/components/design-system

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-21 01:31:22 +07:00

82 lines
2.3 KiB
JSON

{
"name": "goodgo-platform",
"private": true,
"packageManager": "pnpm@10.27.0",
"engines": {
"node": ">=22.0.0"
},
"pnpm": {
"onlyBuiltDependencies": [
"@nestjs/core",
"@prisma/client",
"@prisma/engines",
"esbuild",
"prisma",
"puppeteer"
],
"overrides": {
"axios": ">=1.15.0",
"lodash": ">=4.18.0",
"@hono/node-server": ">=1.19.13",
"@tootallnate/once": ">=3.0.1"
}
},
"scripts": {
"dev": "turbo run dev",
"build": "turbo run build",
"lint": "eslint .",
"test": "turbo run test",
"typecheck": "turbo run typecheck",
"format": "prettier --write .",
"format:check": "prettier --check .",
"dep-cruise": "depcruise apps/ libs/ --config .dependency-cruiser.cjs",
"db:generate": "prisma generate --config prisma/prisma.config.ts",
"db:migrate:dev": "prisma migrate dev --config prisma/prisma.config.ts",
"db:migrate:deploy": "prisma migrate deploy --config prisma/prisma.config.ts",
"db:seed": "prisma db seed --config prisma/prisma.config.ts",
"db:studio": "prisma studio --config prisma/prisma.config.ts",
"db:reset": "prisma migrate reset --config prisma/prisma.config.ts",
"db:push": "prisma db push --config prisma/prisma.config.ts",
"test:e2e": "playwright test",
"test:e2e:api": "playwright test --project=api",
"test:e2e:web": "playwright test --project=web",
"test:e2e:report": "playwright show-report",
"prepare": "husky"
},
"lint-staged": {
"*.{ts,tsx}": [
"eslint --fix",
"prettier --write"
],
"*.{json,md,yaml,yml}": [
"prettier --write"
]
},
"prisma": {
"seed": "tsx prisma/seed.ts"
},
"devDependencies": {
"@eslint/js": "^9.39.4",
"@playwright/test": "^1.59.1",
"@types/pg": "^8.20.0",
"dependency-cruiser": "^17.3.10",
"dotenv": "^17.4.1",
"eslint": "^9.39.4",
"eslint-config-prettier": "^10.1.8",
"eslint-import-resolver-typescript": "^4.4.4",
"eslint-plugin-import-x": "^4.16.2",
"globals": "^17.4.0",
"husky": "^9.1.7",
"lint-staged": "^16.4.0",
"pg": "^8.20.0",
"prettier": "^3.8.1",
"prisma": "^7.7.0",
"tsx": "^4.21.0",
"turbo": "^2.9.4",
"typescript-eslint": "^8.58.0"
},
"dependencies": {
"@prisma/client": "^7.7.0"
}
}