zapishis-client/apps/web/package.json
Vlad Chikalkin 10b36978fe
Feature/10 contacts (#16)
* apps/bot: add feature add contact

* apps/bot: check role 'master' before add contact

* apps/bot: rename createCustomer -> createUser

* remove ';'

* app/bot: add contact define name & phone

* apps/bot: check user already exists w/o telegramId (invited)

* Чтобы добавить контакт, сначала поделитесь своим номером телефона.

* apps/bot: create or update functions

* apps/bot: remove api.ts -> move getCustomer to packages/graphql/api

* packages/graphql: add api/customer tests

* tests for createOrUpdateClient

* fix(apps/web): user is undefined

* fix(apps/web): actions getCustomer

* feat(apps/web): update user photo on app launch

* rename page 'masters' -> 'contacts'

* feat(apps/web): add basic /contacts page

* fix app layout

* refactor customer queries

* add action getProfile

* get customer contacts

* use zustand for contacts

* add loading spinner

* rename filteredContacts -> contacts

* replace zustand with @tanstack/react-query

* profile: use react-query

* refactor updateRole function

* move updateRole closer to profile-card

* beautify actions

* add page 'profile/[telegramId]'

* profile: add button "message to telegram"

* profile: add call feature

* app/bot: normalize phone before register

* do not open keyboard on page load

* contacts: loading spinner

* telegram login: customer.active=true

* update name on telegram first login
2025-01-20 18:11:33 +03:00

55 lines
1.5 KiB
JSON

{
"name": "web",
"version": "0.0.0",
"type": "module",
"private": true,
"scripts": {
"dev": "dotenv -e ../../.env.local next dev --turbopack",
"build": "next build",
"start": "next start",
"lint": "next lint",
"check-types": "tsc --noEmit",
"lint-staged": "lint-staged",
"test:unit": "vitest",
"test:e2e": "playwright test"
},
"dependencies": {
"@repo/ui": "workspace:*",
"@tanstack/react-query": "^5.64.1",
"@telegram-apps/sdk-react": "^2.0.19",
"graphql": "catalog:",
"lucide-react": "catalog:",
"next": "^15.1.0",
"next-auth": "^4.24.11",
"next-intl": "^3.26.0",
"next-themes": "^0.4.4",
"radash": "^12.1.0",
"react": "catalog:",
"react-dom": "catalog:",
"use-debounce": "^10.0.4",
"zod": "catalog:"
},
"devDependencies": {
"@playwright/test": "^1.49.1",
"@repo/eslint-config": "workspace:*",
"@repo/graphql": "workspace:*",
"@repo/lint-staged-config": "workspace:*",
"@repo/typescript-config": "workspace:*",
"@testing-library/react": "^16.1.0",
"@types/node": "catalog:",
"@types/react": "catalog:",
"@types/react-dom": "catalog:",
"@vitejs/plugin-react": "^4.3.4",
"autoprefixer": "catalog:",
"dotenv-cli": "catalog:",
"eruda": "^3.4.1",
"jsdom": "^25.0.1",
"lint-staged": "catalog:",
"postcss": "catalog:",
"tailwindcss": "catalog:",
"typescript": "catalog:",
"vite-tsconfig-paths": "catalog:",
"vitest": "catalog:"
}
}