From c6c405f2324b64dccbcc242b03bcfda4252d2d72 Mon Sep 17 00:00:00 2001 From: Timofey Date: Wed, 21 May 2025 16:31:09 +0300 Subject: [PATCH] dispay message in searchcard --- backend/api/account/client/serializers.py | 16 + frontend/.prettierignore | 9 + frontend/.prettierrc | 9 + .../account/create-as-deliveler/page.tsx | 4 +- .../(urls)/account/create-as-sender/page.tsx | 4 +- frontend/app/(urls)/account/layout.tsx | 14 +- frontend/app/(urls)/account/page.tsx | 15 +- frontend/app/(urls)/account/routes/page.tsx | 60 +- frontend/app/api/account/main/route.ts | 33 +- frontend/app/api/account/routes/route.ts | 17 +- frontend/app/hooks/useForm.ts | 53 +- frontend/app/providers/AuthProvider.tsx | 4 +- frontend/app/store/userStore.ts | 6 +- frontend/package-lock.json | 613 +++++++++++++++++- frontend/package.json | 3 + 15 files changed, 712 insertions(+), 148 deletions(-) create mode 100644 frontend/.prettierignore create mode 100644 frontend/.prettierrc diff --git a/backend/api/account/client/serializers.py b/backend/api/account/client/serializers.py index 2531744..f01679d 100644 --- a/backend/api/account/client/serializers.py +++ b/backend/api/account/client/serializers.py @@ -7,6 +7,8 @@ import pytz class RouteSerializer(serializers.ModelSerializer): from_city_name = serializers.SerializerMethodField() to_city_name = serializers.SerializerMethodField() + from_country_name = serializers.SerializerMethodField() + to_country_name = serializers.SerializerMethodField() formatted_departure = serializers.SerializerMethodField() formatted_arrival = serializers.SerializerMethodField() formatted_cargo_type = serializers.SerializerMethodField() @@ -30,6 +32,20 @@ class RouteSerializer(serializers.ModelSerializer): except City.DoesNotExist: return None + def get_from_country_name(self, obj): + try: + city = City.objects.get(id=obj.from_city_id) + return city.country.international_name or city.country.official_name + except (City.DoesNotExist, AttributeError): + return None + + def get_to_country_name(self, obj): + try: + city = City.objects.get(id=obj.to_city_id) + return city.country.international_name or city.country.official_name + except (City.DoesNotExist, AttributeError): + return None + def _convert_to_local_time(self, dt): if dt is None: return None diff --git a/frontend/.prettierignore b/frontend/.prettierignore new file mode 100644 index 0000000..200c99d --- /dev/null +++ b/frontend/.prettierignore @@ -0,0 +1,9 @@ +node_modules +.next +dist +out +coverage +public +.vscode +*.log +*.lock \ No newline at end of file diff --git a/frontend/.prettierrc b/frontend/.prettierrc new file mode 100644 index 0000000..4ac25a5 --- /dev/null +++ b/frontend/.prettierrc @@ -0,0 +1,9 @@ +{ + "semi": false, + "singleQuote": true, + "trailingComma": "es5", + "printWidth": 100, + "tabWidth": 2, + "arrowParens": "avoid", + "plugins": ["prettier-plugin-tailwindcss"] +} diff --git a/frontend/app/(urls)/account/create-as-deliveler/page.tsx b/frontend/app/(urls)/account/create-as-deliveler/page.tsx index 86be183..77afa31 100644 --- a/frontend/app/(urls)/account/create-as-deliveler/page.tsx +++ b/frontend/app/(urls)/account/create-as-deliveler/page.tsx @@ -3,8 +3,8 @@ import React from 'react' const DelivelerPage = () => { return (
-
-
+
+

Перевезти посылку

diff --git a/frontend/app/(urls)/account/create-as-sender/page.tsx b/frontend/app/(urls)/account/create-as-sender/page.tsx index 0ca1448..07a7b62 100644 --- a/frontend/app/(urls)/account/create-as-sender/page.tsx +++ b/frontend/app/(urls)/account/create-as-sender/page.tsx @@ -3,8 +3,8 @@ import React from 'react' const SenderPage = () => { return (
-
-
+
+

Отправить посылку

diff --git a/frontend/app/(urls)/account/layout.tsx b/frontend/app/(urls)/account/layout.tsx index b49e3f8..d3f7fc2 100644 --- a/frontend/app/(urls)/account/layout.tsx +++ b/frontend/app/(urls)/account/layout.tsx @@ -11,11 +11,7 @@ import { MdOutlinePayments } from 'react-icons/md' import { CgNotes } from 'react-icons/cg' import useUserStore from '@/app/store/userStore' -export default function AccountLayout({ - children, -}: { - children: React.ReactNode -}) { +export default function AccountLayout({ children }: { children: React.ReactNode }) { const [isLoading, setIsLoading] = useState(true) const router = useRouter() const { isAuthenticated, user } = useUserStore() @@ -55,14 +51,14 @@ export default function AccountLayout({ return (
-
-
-
+
+
+
-
{children}
+
{children}
diff --git a/frontend/app/(urls)/account/page.tsx b/frontend/app/(urls)/account/page.tsx index 00a82e0..2c7c42b 100644 --- a/frontend/app/(urls)/account/page.tsx +++ b/frontend/app/(urls)/account/page.tsx @@ -31,7 +31,7 @@ const AccountPage = () => { city: user?.city || '', }, validationRules, - async (values) => { + async values => { try { const response = await fetch('/api/account/main', { method: 'PATCH', @@ -52,10 +52,7 @@ const AccountPage = () => { } catch (error) { showToast({ type: 'error', - message: - error instanceof Error - ? error.message - : 'Ой, что то пошло не так..', + message: error instanceof Error ? error.message : 'Ой, что то пошло не так..', }) } } @@ -67,12 +64,12 @@ const AccountPage = () => { return (
-
-
+
+

Личные данные

-
+
{