From 67f59eefdf7263ecbb074b74ec1632853e22c5d6 Mon Sep 17 00:00:00 2001 From: payacom <59262811+payacom@users.noreply.github.com> Date: Tue, 28 Jul 2026 10:06:42 +0330 Subject: [PATCH] post --- modstagram-next.zip | Bin 0 -> 5388319 bytes next-sitemap.config.js | 229 +------- next.config.ts | 6 + package.json | 1 - public/images/icons/radar.png | Bin 0 -> 1280 bytes public/images/icons/slider-horizontal.png | Bin 0 -> 436 bytes public/robots.txt | 51 +- public/sitemap-0.xml | 50 -- public/sitemap.xml | 5 - robots.txt | 22 + src/app/(auth)/(register)/register/page.tsx | 60 ++- src/app/(auth)/verify/confirm/page.tsx | 8 +- .../academy/[id]/[title]/CourseClient.tsx | 12 +- .../[academyId]/AcademyProfileClient.tsx | 27 +- src/app/(projects)/new-project/page.tsx | 6 +- .../[id]/[title]/ProjectDetailClient.tsx | 96 +++- src/app/(projects)/projects/new/[id]/page.tsx | 153 ++++++ .../projects/payment/failed/page.tsx | 142 +++++ .../projects/payment/success/page.tsx | 104 ++++ .../(projects)/projects/specialists/page.tsx | 480 +++++++++++++++++ src/app/globals.css | 41 ++ src/app/layout.tsx | 23 +- src/app/new-post/page.tsx | 327 ++++++++---- src/app/offer/[id]/page.tsx | 322 ++++++----- src/app/robots.ts | 71 +-- src/app/settings/academy/my-courses/page.tsx | 6 +- .../settings/academy/storeProfile/page.tsx | 4 +- src/app/settings/academy/wallet/page.tsx | 4 +- .../settings/chats/[username]/[id]/page.tsx | 40 +- src/app/settings/chats/nearby/page.tsx | 411 ++++++++++++++ src/app/settings/chats/page.tsx | 29 + .../settings/chats/rooms/[roomId]/page.tsx | 302 ++++++++++- src/app/settings/edit/username/page.tsx | 3 +- src/app/settings/notifications/page.tsx | 21 +- src/app/settings/profile/layout.tsx | 11 +- .../settings/profile/user-settings/page.tsx | 4 +- src/app/settings/workroom/edit/[id]/page.tsx | 29 + src/app/settings/workroom/page.tsx | 112 +++- src/app/sitemap.ts | 107 ---- src/app/sitemap.xml/route.ts | 82 +++ src/app/sitemaps/[type]/[[...page]]/route.ts | 100 ++++ src/components/Layout.tsx | 2 + src/components/TabNavigation.tsx | 2 +- src/components/academy/ModelHead.tsx | 10 +- .../chat/AddChatRoomMembersModal.tsx | 10 + src/components/chat/ChatMessageCard.tsx | 28 +- src/components/chat/ChatMessageList.tsx | 96 +++- src/components/chat/CreateChatRoomModal.tsx | 18 +- src/components/chat/ForwardMessageModal.tsx | 23 +- src/components/chat/MediaPreviewModal.tsx | 14 +- src/components/chat/MultiImageModal.tsx | 12 +- src/components/chat/SharedPostBubble.tsx | 1 + src/components/chat/SharedStoryBubble.tsx | 7 +- src/components/course/CourseManager.tsx | 14 +- src/components/elements/Modal.tsx | 2 +- src/components/explore/ExploreAcademyCard.tsx | 49 +- src/components/explore/ExploreGrid.tsx | 9 +- src/components/explore/ExploreReelsView.tsx | 8 +- src/components/explore/ExploreVideoThumb.tsx | 11 +- src/components/main/BaseUrl.ts | 13 + src/components/main/Header.tsx | 2 +- .../main/Services/AddServiceModal.tsx | 63 ++- src/components/main/VerificationBadge.tsx | 14 +- src/components/models/InfinitePosts.tsx | 6 +- .../models/MainModelCard/MainModelCard.tsx | 16 +- .../models/ModelPage/MainModelCardPost.tsx | 14 +- .../models/ModelPage/ModelContent.tsx | 30 +- .../models/ModelPage/ModelContentPosts.tsx | 28 +- src/components/models/ModelPage/ModelHead.tsx | 8 +- .../models/ModelPage/ModelHeadRowThree.tsx | 50 +- .../models/ModelPage/ModelHeadRowTwo.tsx | 26 +- src/components/models/ModelsFilter.tsx | 12 + src/components/posts/PostFeedView.tsx | 5 +- src/components/posts/PostImageGallery.tsx | 122 +++++ src/components/posts/ReelsPostOptionsMenu.tsx | 46 +- src/components/posts/VideoCoverPicker.tsx | 39 +- src/components/profile/ShareProfileModal.tsx | 128 +++++ src/components/projects/MainProjectCard.tsx | 169 ++++-- .../projects/NewProject/MultiStepForm.tsx | 67 ++- .../projects/NewProject/RoleModal.tsx | 308 +++++++++++ src/components/projects/NewProject/Step1.tsx | 184 +++---- src/components/projects/NewProject/Step2.tsx | 181 ++----- src/components/projects/NewProject/Step3.tsx | 396 ++++++++++---- src/components/projects/NewProject/Step4.tsx | 192 +++++++ .../NewProject/step1/ExpertiseSelector.tsx | 14 +- .../NewProject/step1/GenderSelection.tsx | 75 ++- .../NewProject/step1/LocationSelector.tsx | 110 +++- .../ProjectPage/ProjectRequestForm.tsx | 114 +++- src/components/projects/ProjectsFilter.tsx | 15 + .../projects/SpecialistsSearchModal.tsx | 503 ++++++++++++++++++ .../Workroom/ProjectRequestsAction.tsx | 183 +++++-- src/components/pwa/PwaBootSplash.tsx | 121 +++++ src/components/settings/FavoritesGrid.tsx | 106 ++-- src/components/settings/ListDateSeparator.tsx | 9 +- src/components/settings/UserDetails.tsx | 21 +- .../settings/profile/ProfileContent.tsx | 2 +- src/components/stories/SendStoryModal.tsx | 231 ++++++++ src/components/stories/StoryViewer.tsx | 35 +- src/constants/exploreFilters.ts | 2 + src/constants/notificationFilters.ts | 3 + src/contexts/ProjectFormContext.tsx | 79 ++- src/hooks/useInfiniteScroll.tsx | 2 + src/lib/captionLength.ts | 1 + src/lib/chat/socketClient.ts | 47 +- src/lib/e2ee/crypto.ts | 186 +++++++ src/lib/e2ee/dm.ts | 148 ++++++ src/lib/e2ee/envelope.ts | 34 ++ src/lib/e2ee/index.ts | 18 + src/lib/e2ee/keys.ts | 105 ++++ src/lib/e2ee/room.ts | 218 ++++++++ src/lib/e2ee/storage.ts | 58 ++ src/lib/explore/buildPostFilters.ts | 2 + src/lib/explore/postMedia.ts | 43 +- src/lib/groupItemsByDate.ts | 10 +- src/lib/moderationStatus.ts | 8 + src/lib/postEditWindow.ts | 19 + src/lib/postLocationNotice.ts | 42 +- src/lib/projectDrafts.ts | 62 +++ src/lib/projectFormStyles.ts | 13 + src/lib/pwaConfig.ts | 4 +- src/lib/rangeValidation.ts | 19 + src/lib/sitemap/builders.ts | 429 +++++++++++++++ src/lib/sitemap/config.ts | 72 +++ src/lib/validation/username.ts | 8 +- src/locales/en/common.json | 187 ++++++- src/locales/fa/common.json | 189 ++++++- src/locales/fa/seo.json | 2 +- src/providers/ChatSocketProvider.tsx | 3 + src/types/types.ts | 37 ++ 129 files changed, 7964 insertions(+), 1561 deletions(-) create mode 100644 modstagram-next.zip create mode 100644 public/images/icons/radar.png create mode 100644 public/images/icons/slider-horizontal.png delete mode 100644 public/sitemap-0.xml delete mode 100644 public/sitemap.xml create mode 100644 robots.txt create mode 100644 src/app/(projects)/projects/new/[id]/page.tsx create mode 100644 src/app/(projects)/projects/payment/failed/page.tsx create mode 100644 src/app/(projects)/projects/payment/success/page.tsx create mode 100644 src/app/(projects)/projects/specialists/page.tsx create mode 100644 src/app/settings/chats/nearby/page.tsx delete mode 100644 src/app/sitemap.ts create mode 100644 src/app/sitemap.xml/route.ts create mode 100644 src/app/sitemaps/[type]/[[...page]]/route.ts create mode 100644 src/components/posts/PostImageGallery.tsx create mode 100644 src/components/profile/ShareProfileModal.tsx create mode 100644 src/components/projects/NewProject/RoleModal.tsx create mode 100644 src/components/projects/NewProject/Step4.tsx create mode 100644 src/components/projects/SpecialistsSearchModal.tsx create mode 100644 src/components/pwa/PwaBootSplash.tsx create mode 100644 src/components/stories/SendStoryModal.tsx create mode 100644 src/lib/e2ee/crypto.ts create mode 100644 src/lib/e2ee/dm.ts create mode 100644 src/lib/e2ee/envelope.ts create mode 100644 src/lib/e2ee/index.ts create mode 100644 src/lib/e2ee/keys.ts create mode 100644 src/lib/e2ee/room.ts create mode 100644 src/lib/e2ee/storage.ts create mode 100644 src/lib/moderationStatus.ts create mode 100644 src/lib/postEditWindow.ts create mode 100644 src/lib/projectDrafts.ts create mode 100644 src/lib/projectFormStyles.ts create mode 100644 src/lib/rangeValidation.ts create mode 100644 src/lib/sitemap/builders.ts create mode 100644 src/lib/sitemap/config.ts diff --git a/modstagram-next.zip b/modstagram-next.zip new file mode 100644 index 0000000000000000000000000000000000000000..79689cd2cee31175a38af83d51e9579421b905af GIT binary patch literal 5388319 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