From 5ecbcd1f26855898f93adef160e0c02f93c201bb Mon Sep 17 00:00:00 2001 From: payacom <59262811+payacom@users.noreply.github.com> Date: Fri, 31 Jul 2026 21:20:13 +0330 Subject: [PATCH] shop --- modstagram-next.zip | Bin 5388319 -> 0 bytes src/app/(auth)/(login)/login/page.tsx | 3 +- src/app/(auth)/(register)/register/page.tsx | 3 +- .../(register)/register/username/page.tsx | 19 +- src/app/(auth)/AuthProviders.tsx | 42 +- src/app/api/auth/config/route.ts | 2 + src/app/auth/instagram/callback/page.tsx | 142 ++++++ .../settings/edit/instagram-import/page.tsx | 110 ++++ src/app/settings/edit/page.tsx | 1 + src/app/settings/edit/shaba/page.tsx | 360 ++++++++++---- src/app/settings/financial/page.tsx | 1 + src/app/settings/shop/page.tsx | 191 +++++++ src/app/settings/wallet/page.tsx | 218 ++++++++ src/app/shops/[shopId]/page.tsx | 74 +++ .../[shopId]/products/new/images/page.tsx | 165 ++++++ .../shops/[shopId]/products/new/name/page.tsx | 148 ++++++ .../[shopId]/products/new/variants/page.tsx | 194 ++++++++ src/app/shops/checkout/[orderId]/page.tsx | 144 ++++++ src/app/shops/discover/page.tsx | 36 ++ src/app/shops/listing/[listingId]/page.tsx | 220 ++++++++ src/app/shops/new/category/page.tsx | 104 ++++ src/app/shops/new/contact/page.tsx | 213 ++++++++ src/app/shops/new/location/page.tsx | 189 +++++++ src/app/shops/new/logo/page.tsx | 112 +++++ src/app/shops/new/name/page.tsx | 86 ++++ src/app/shops/new/preview/page.tsx | 115 +++++ src/app/shops/new/shipping/page.tsx | 182 +++++++ src/app/shops/orders/[orderId]/page.tsx | 468 ++++++++++++++++++ src/app/shops/payment/failed/page.tsx | 63 +++ src/app/shops/payment/success/page.tsx | 46 ++ src/app/shops/product/[catalogId]/page.tsx | 105 ++++ src/components/auth/InstagramSignInButton.tsx | 91 ++++ src/components/models/ModelsFilter.tsx | 8 + src/components/settings/SettingsClient.tsx | 2 + src/components/shops/ShopCategoryPicker.tsx | 145 ++++++ src/components/shops/ShopProductAuthor.tsx | 31 ++ src/components/shops/ShopProductGrid.tsx | 134 +++++ .../shops/orders/BuyerOrderItem.tsx | 80 +++ .../shops/orders/SellerOrderItem.tsx | 87 ++++ src/config/instagramAuth.ts | 41 ++ src/constants/index.ts | 5 + src/hooks/useAxios.tsx | 1 + src/hooks/useProductWizardId.ts | 39 ++ src/hooks/useShopWizardId.ts | 26 + src/lib/auth/instagramClientId.ts | 10 + src/lib/auth/postLogin.ts | 4 +- src/lib/iranNationalCode.ts | 15 + src/locales/en/common.json | 197 +++++++- src/locales/fa/common.json | 197 +++++++- src/types/types.ts | 40 +- 50 files changed, 4793 insertions(+), 116 deletions(-) delete mode 100644 modstagram-next.zip create mode 100644 src/app/auth/instagram/callback/page.tsx create mode 100644 src/app/settings/edit/instagram-import/page.tsx create mode 100644 src/app/settings/shop/page.tsx create mode 100644 src/app/settings/wallet/page.tsx create mode 100644 src/app/shops/[shopId]/page.tsx create mode 100644 src/app/shops/[shopId]/products/new/images/page.tsx create mode 100644 src/app/shops/[shopId]/products/new/name/page.tsx create mode 100644 src/app/shops/[shopId]/products/new/variants/page.tsx create mode 100644 src/app/shops/checkout/[orderId]/page.tsx create mode 100644 src/app/shops/discover/page.tsx create mode 100644 src/app/shops/listing/[listingId]/page.tsx create mode 100644 src/app/shops/new/category/page.tsx create mode 100644 src/app/shops/new/contact/page.tsx create mode 100644 src/app/shops/new/location/page.tsx create mode 100644 src/app/shops/new/logo/page.tsx create mode 100644 src/app/shops/new/name/page.tsx create mode 100644 src/app/shops/new/preview/page.tsx create mode 100644 src/app/shops/new/shipping/page.tsx create mode 100644 src/app/shops/orders/[orderId]/page.tsx create mode 100644 src/app/shops/payment/failed/page.tsx create mode 100644 src/app/shops/payment/success/page.tsx create mode 100644 src/app/shops/product/[catalogId]/page.tsx create mode 100644 src/components/auth/InstagramSignInButton.tsx create mode 100644 src/components/shops/ShopCategoryPicker.tsx create mode 100644 src/components/shops/ShopProductAuthor.tsx create mode 100644 src/components/shops/ShopProductGrid.tsx create mode 100644 src/components/shops/orders/BuyerOrderItem.tsx create mode 100644 src/components/shops/orders/SellerOrderItem.tsx create mode 100644 src/config/instagramAuth.ts create mode 100644 src/hooks/useProductWizardId.ts create mode 100644 src/hooks/useShopWizardId.ts create mode 100644 src/lib/auth/instagramClientId.ts create mode 100644 src/lib/iranNationalCode.ts diff --git a/modstagram-next.zip b/modstagram-next.zip deleted file mode 100644 index 79689cd2cee31175a38af83d51e9579421b905af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5388319 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