ghost 6.11.0 → 6.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/tryghost-i18n-6.12.0.tgz +0 -0
- package/core/boot.js +4 -2
- package/core/built/admin/assets/{_baseAssignValue-BX8EallQ.js → _baseAssignValue-hsL6ItjC.js} +1 -1
- package/core/built/admin/assets/{a-large-small-CKZJgscl.js → a-large-small-BPPu_Iy7.js} +1 -1
- package/core/built/admin/assets/admin-x-settings/admin-x-settings.js +1 -1
- package/core/built/admin/assets/admin-x-settings/{code-editor-view-n8DFeXbv.mjs → code-editor-view-Bq6l5arq.mjs} +2 -2
- package/core/built/admin/assets/admin-x-settings/{index-v6qQgUXt.mjs → index-CKaxer_o.mjs} +2 -2
- package/core/built/admin/assets/admin-x-settings/{index-CXL12uvO.mjs → index-CtYEAgeN.mjs} +2 -2
- package/core/built/admin/assets/admin-x-settings/{index-D4ye6uvI.mjs → index-D4NstoNQ.mjs} +11 -6
- package/core/built/admin/assets/admin-x-settings/{modals-CdsPaTfy.mjs → modals-BzljHVa7.mjs} +2 -2
- package/core/built/admin/assets/{at-sign-CqQzllfI.js → at-sign-CYnGzOFc.js} +1 -1
- package/core/built/admin/assets/{audience-select-DQD7iDOb.js → audience-select-DYoxiiwy.js} +1 -1
- package/core/built/admin/assets/{avatar-flipboard-uq7ptTxT.js → avatar-flipboard-C9-npfmZ.js} +1 -1
- package/core/built/admin/assets/{bluesky-sharing-qyIGv6Ny.js → bluesky-sharing-BGcmGcee.js} +1 -1
- package/core/built/admin/assets/{chart-DGA1MaFs.js → chart-CqJxisVP.js} +1 -1
- package/core/built/admin/assets/{chunk.524.1289543297329587cf8a.js → chunk.524.74a9629dd2ba0d21bbef.js} +7 -7
- package/core/built/admin/assets/{chunk.582.344ea0d0a16d671345cd.js → chunk.582.3846471396b3a7c46e66.js} +8 -8
- package/core/built/admin/assets/{code-editor-view-Bz6kXDiv.js → code-editor-view-C8l3gNnO.js} +1 -1
- package/core/built/admin/assets/{comments-C-lkEDkz.js → comments-CpHDoxov.js} +1 -1
- package/core/built/admin/assets/{copy-BFuV16bY.js → copy-DWiB-781.js} +1 -1
- package/core/built/admin/assets/{data-list-Bw1CQEZ9.js → data-list-yngXNZDF.js} +1 -1
- package/core/built/admin/assets/{deleted-feed-item-CmNbSYiO.js → deleted-feed-item-C0FcyLMN.js} +1 -1
- package/core/built/admin/assets/{edit-profile-DlIPB2km.js → edit-profile-BjtDkDAq.js} +1 -1
- package/core/built/admin/assets/{empty-indicator-DBrIZcFq.js → empty-indicator-BXWniwsl.js} +1 -1
- package/core/built/admin/assets/{en-BBc7b85q.js → en-B8qaJx-T.js} +1 -1
- package/core/built/admin/assets/{feed-B3XQzKZl.js → feed-DsCVb1SA.js} +1 -1
- package/core/built/admin/assets/{filters-DUFXZZnu.js → filters-jAXQSPq6.js} +1 -1
- package/core/built/admin/assets/{gh-chart-BV97-O7c.js → gh-chart-DwTCK8z_.js} +1 -1
- package/core/built/admin/assets/{ghost-9aa1e7c5992f122dba6932af78bf8e56.js → ghost-6367d022df9db9dacbcb9bfa30232ec7.js} +2 -2
- package/core/built/admin/assets/{growth-njR0GqK2.js → growth-DshcRqda.js} +1 -1
- package/core/built/admin/assets/{hash-CdH0ikFp.js → hash-p9dv0yuc.js} +1 -1
- package/core/built/admin/assets/{inbox-Bd0uf1Ez.js → inbox-CRoP9sy5.js} +1 -1
- package/core/built/admin/assets/{index-Kji6JKl7.js → index-6syrC9X1.js} +1 -1
- package/core/built/admin/assets/{index-C7M19LpB.js → index-BKtz3UH0.js} +1 -1
- package/core/built/admin/assets/{index-DWk7hKRR.js → index-BwY94Fb4.js} +1 -1
- package/core/built/admin/assets/{index-BFhECYgc.js → index-C3DF6aFe.js} +1 -1
- package/core/built/admin/assets/index-C6NCNp1B.js +1 -0
- package/core/built/admin/assets/{index-BYawr8p9.js → index-CJU9a2PB.js} +3 -3
- package/core/built/admin/assets/{index-CIE2_z5J.js → index-CUWE7aD1.js} +1 -1
- package/core/built/admin/assets/{index-DgRIbSpg.js → index-CuQ_II0e.js} +1 -1
- package/core/built/admin/assets/{index-Birw80cQ.js → index-DG8f-HuU.js} +1 -1
- package/core/built/admin/assets/{index-DziHC2du.js → index-DItZTRQ4.js} +1 -1
- package/core/built/admin/assets/{index-DG53N3Xt.js → index-eLx96SEn.js} +1 -1
- package/core/built/admin/assets/{index-DCw6JaEl.js → index-j2_Q-_8H.js} +1 -1
- package/core/built/admin/assets/{index-BZ21H0xH.js → index-qWpHJAMP.js} +1 -1
- package/core/built/admin/assets/{index-DXCu9e7c.js → index-sy6xRtoO.js} +1 -1
- package/core/built/admin/assets/{koenig-lexical-BDJVCHtm.js → koenig-lexical-DgAlBHHS.js} +1 -1
- package/core/built/admin/assets/{kpi-card-cv8roErt.js → kpi-card-CHZSLw4p.js} +1 -1
- package/core/built/admin/assets/{kpis-Dt4OFY3L.js → kpis-DzbAHfKK.js} +1 -1
- package/core/built/admin/assets/{links-08beB3Ij.js → links-BQHRbn46.js} +1 -1
- package/core/built/admin/assets/{lucide-react-DKlmxVQI.js → lucide-react-B7UnD_Dp.js} +1 -1
- package/core/built/admin/assets/{main-layout-Cl09wG7F.js → main-layout-9nmU5WlG.js} +1 -1
- package/core/built/admin/assets/{message-square-text-CaMVBVPr.js → message-square-text-CS3iRuPc.js} +1 -1
- package/core/built/admin/assets/{minus-2XwCoFJV.js → minus-emzwh6hq.js} +1 -1
- package/core/built/admin/assets/{modals-CIgzYQgv.js → modals-CumFuZ2d.js} +1 -1
- package/core/built/admin/assets/{moderation-FjlsSym6.js → moderation-DyfFc9m4.js} +1 -1
- package/core/built/admin/assets/{newsletter-BNOwZNlE.js → newsletter-BWul5IFc.js} +1 -1
- package/core/built/admin/assets/{newsletters-DUusEYSg.js → newsletters-N6bwI1OF.js} +1 -1
- package/core/built/admin/assets/{note-BpYwIDK6.js → note-CiBzkHzz.js} +1 -1
- package/core/built/admin/assets/{overview-Y5QYPClr.js → overview-D9gRvn7X.js} +1 -1
- package/core/built/admin/assets/{pagemenu-BMXHDXYy.js → pagemenu-aHubMPwB.js} +1 -1
- package/core/built/admin/assets/{post-analytics-UerFnJse.js → post-analytics-Bm9xH8nA.js} +1 -1
- package/core/built/admin/assets/{post-analytics-context-geHk7rOj.js → post-analytics-context-C7oW3aBz.js} +1 -1
- package/core/built/admin/assets/{post-analytics-header-DXfc4KeX.js → post-analytics-header-BjGFgN6A.js} +1 -1
- package/core/built/admin/assets/{post-share-modal-Dql4fYjR.js → post-share-modal-Su923uIc.js} +1 -1
- package/core/built/admin/assets/{posts-Bsvw11Zo.js → posts-BwP7BNcB.js} +1 -1
- package/core/built/admin/assets/{referrers-B8xJpCcR.js → referrers-n_ln9DqI.js} +1 -1
- package/core/built/admin/assets/{repeat-COP-3g8d.js → repeat-ms5ocvE0.js} +1 -1
- package/core/built/admin/assets/{reply-JE8tmvOn.js → reply-BvO85IDn.js} +1 -1
- package/core/built/admin/assets/{select-BhvNY3I-.js → select-B4QhMW5f.js} +1 -1
- package/core/built/admin/assets/{settings-BJwVfuWG.js → settings-D5rGcWJ7.js} +4 -4
- package/core/built/admin/assets/{settings-C6ZUZQe4.js → settings-QtZ6a2TL.js} +1 -1
- package/core/built/admin/assets/{sort-button-iOtR-vQ1.js → sort-button-84sYUZMN.js} +1 -1
- package/core/built/admin/assets/{source-icon-C2iFWMlV.js → source-icon-Bzw-AU8p.js} +1 -1
- package/core/built/admin/assets/{sprout-BW9HFVU8.js → sprout-C2R5CbXV.js} +1 -1
- package/core/built/admin/assets/{square-BCNGSZhW.js → square-DT1uWkxs.js} +1 -1
- package/core/built/admin/assets/stats/{audience-select-DNAWmT7R.mjs → audience-select-fTCiZ9MT.mjs} +3 -3
- package/core/built/admin/assets/stats/{index-DbGvSTMe.mjs → index-BKgioyC7.mjs} +5 -5
- package/core/built/admin/assets/stats/{index-s19ZmxbX.mjs → index-CR2t5Xd-.mjs} +5 -5
- package/core/built/admin/assets/stats/index-DEkYwR7C.mjs +739 -0
- package/core/built/admin/assets/stats/{index-BS3KMSy9.mjs → index-Djwey97a.mjs} +5 -5
- package/core/built/admin/assets/stats/{index-MOQSSYwT.mjs → index-FiU_XgEe.mjs} +6 -6
- package/core/built/admin/assets/stats/{sort-button-D76rcldr.mjs → sort-button-Bvi1wfa7.mjs} +3 -3
- package/core/built/admin/assets/stats/{stats-CJ7fhUyT.mjs → stats-Bbm6yWZq.mjs} +2 -2
- package/core/built/admin/assets/stats/stats.js +1 -1
- package/core/built/admin/assets/stats/{tabs-CkbxYgOE.mjs → tabs-BKwH5k-q.mjs} +3 -3
- package/core/built/admin/assets/stats/{url-helpers-DICtqCrE.mjs → url-helpers-DmHnUIGc.mjs} +9 -9
- package/core/built/admin/assets/stats/{use-growth-stats-DzO7zEy4.mjs → use-growth-stats-BVj3j1hb.mjs} +3 -3
- package/core/built/admin/assets/{stats-r0Bphuvi.js → stats-B1mhlQSp.js} +1 -1
- package/core/built/admin/assets/{stats-view-DzZxrBDz.js → stats-view-C6MTCwRW.js} +1 -1
- package/core/built/admin/assets/{step-1-CUoUOyMm.js → step-1-CzQmZJ93.js} +1 -1
- package/core/built/admin/assets/{step-2-CpAkPD8D.js → step-2-DXGDWSQo.js} +1 -1
- package/core/built/admin/assets/{step-3-Ci6oJDmK.js → step-3-CYuxXKac.js} +1 -1
- package/core/built/admin/assets/{table-DeBuf80X.js → table-mjAkKNdb.js} +1 -1
- package/core/built/admin/assets/{tabs-C2sFfNcp.js → tabs-BwQ-i6MY.js} +1 -1
- package/core/built/admin/assets/{tags-Bl6G5rvf.js → tags-BkUqCuvX.js} +1 -1
- package/core/built/admin/assets/{tags-BL_N4nn2.js → tags-DXDZbfxp.js} +1 -1
- package/core/built/admin/assets/{toggle-group-B2X-8giI.js → toggle-group-CqDO3Kkx.js} +1 -1
- package/core/built/admin/assets/{topic-filter-DeqMID_s.js → topic-filter-DnuJJBAE.js} +1 -1
- package/core/built/admin/assets/{trash-BglGemAb.js → trash-CZ3EXwTL.js} +1 -1
- package/core/built/admin/assets/{url-helpers-84icqAuE.js → url-helpers-BE3VXr__.js} +1 -1
- package/core/built/admin/assets/{use-growth-stats-DF-7tL8g.js → use-growth-stats-CiuWWM6O.js} +1 -1
- package/core/built/admin/assets/{use-infinite-virtual-scroll-BHH7oscK.js → use-infinite-virtual-scroll-BjATkxBj.js} +1 -1
- package/core/built/admin/assets/{use-simple-pagination-BsvYfixw.js → use-simple-pagination-C9cb7dDz.js} +1 -1
- package/core/built/admin/assets/{user-round-check-BjHbfXKY.js → user-round-check-D3ihrrKL.js} +1 -1
- package/core/built/admin/assets/{wallet-cards-KaTkgqvi.js → wallet-cards-Do7nPf3f.js} +1 -1
- package/core/built/admin/assets/{web-CUWbpFil.js → web-BEwI2Gfy.js} +1 -1
- package/core/built/admin/index-forward.html +4 -4
- package/core/built/admin/index.html +3 -3
- package/core/frontend/web/middleware/index.js +1 -0
- package/core/frontend/web/middleware/serve-indexnow-key.js +66 -0
- package/core/frontend/web/site.js +3 -0
- package/core/server/api/endpoints/authentication.js +1 -1
- package/core/server/api/endpoints/pages.js +1 -1
- package/core/server/api/endpoints/posts-public.js +1 -1
- package/core/server/api/endpoints/posts.js +1 -1
- package/core/server/api/endpoints/search-index-public.js +1 -1
- package/core/server/api/endpoints/search-index.js +1 -1
- package/core/server/api/endpoints/users.js +1 -1
- package/core/server/api/endpoints/utils/serializers/input/settings.js +2 -1
- package/core/server/api/endpoints/utils/serializers/output/mappers/posts.js +1 -1
- package/core/server/api/endpoints/utils/validators/input/settings.js +1 -1
- package/core/server/data/exporter/table-lists.js +2 -1
- package/core/server/data/migrations/versions/6.12/2026-01-08-11-48-16-add-indexnow-api-key-setting.js +9 -0
- package/core/server/data/schema/default-settings/default-settings.json +6 -0
- package/core/server/lib/lexical.js +1 -1
- package/core/server/models/settings.js +2 -1
- package/core/server/services/activitypub/{ActivityPubServiceWrapper.js → activity-pub-service-wrapper.js} +1 -1
- package/core/server/services/activitypub/{ActivityPubService.ts → activity-pub-service.ts} +1 -1
- package/core/server/services/activitypub/index.js +1 -1
- package/core/server/services/adapter-manager/index.js +1 -1
- package/core/server/services/announcement-bar-service/{AnnouncementBarSettings.js → announcement-bar-settings.js} +1 -1
- package/core/server/services/announcement-bar-service/index.js +1 -1
- package/core/server/services/audience-feedback/{AudienceFeedbackController.js → audience-feedback-controller.js} +3 -3
- package/core/server/services/audience-feedback/index.js +4 -4
- package/core/server/services/auth/session/express-session.js +1 -1
- package/core/server/services/comments/{CommentsController.js → comments-controller.js} +2 -2
- package/core/server/services/comments/{CommentsServiceEmails.js → comments-service-emails.js} +1 -1
- package/core/server/services/comments/{CommentsService.js → comments-service.js} +1 -1
- package/core/server/services/comments/index.js +3 -3
- package/core/server/services/custom-redirects/index.js +2 -2
- package/core/server/services/donations/{DonationBookshelfRepository.ts → donation-bookshelf-repository.ts} +1 -1
- package/core/server/services/donations/{DonationServiceWrapper.js → donation-service-wrapper.js} +1 -1
- package/core/server/services/donations/index.js +1 -1
- package/core/server/services/email-address/{EmailAddressServiceWrapper.js → email-address-service-wrapper.js} +2 -2
- package/core/server/services/email-address/{EmailAddressService.js → email-address-service.js} +4 -4
- package/core/server/services/email-address/{EmailAddressService.ts → email-address-service.ts} +1 -1
- package/core/server/services/email-address/index.js +1 -1
- package/core/server/services/email-analytics/{EmailAnalyticsProviderMailgun.js → email-analytics-provider-mailgun.js} +1 -1
- package/core/server/services/email-analytics/{EmailAnalyticsServiceWrapper.js → email-analytics-service-wrapper.js} +5 -5
- package/core/server/services/email-analytics/{EmailAnalyticsService.js → email-analytics-service.js} +2 -2
- package/core/server/services/email-analytics/index.js +1 -1
- package/core/server/services/email-analytics/jobs/fetch-latest/index.js +1 -1
- package/core/server/services/email-service/{BatchSendingService.js → batch-sending-service.js} +8 -8
- package/core/server/services/email-service/{EmailEventProcessor.js → email-event-processor.js} +6 -6
- package/core/server/services/email-service/{EmailEventStorage.js → email-event-storage.js} +1 -1
- package/core/server/services/email-service/{EmailRenderer.js → email-renderer.js} +1 -1
- package/core/server/services/email-service/{EmailServiceWrapper.js → email-service-wrapper.js} +9 -9
- package/core/server/services/email-service/{EmailService.js → email-service.js} +13 -13
- package/core/server/services/email-service/index.js +1 -1
- package/core/server/services/email-service/{MailgunEmailProvider.js → mailgun-email-provider.js} +1 -1
- package/core/server/services/email-service/{SendingService.js → sending-service.js} +6 -6
- package/core/server/services/email-suppression-list/{InMemoryEmailSuppressionList.js → in-memory-email-suppression-list.js} +1 -1
- package/core/server/services/email-suppression-list/{MailgunEmailSuppressionList.js → mailgun-email-suppression-list.js} +3 -3
- package/core/server/services/email-suppression-list/service.js +2 -2
- package/core/server/services/explore/index.js +2 -2
- package/core/server/services/explore-ping/index.js +2 -2
- package/core/server/services/frontend-data-service/index.js +1 -1
- package/core/server/services/identity-tokens/{IdentityTokenServiceWrapper.js → identity-token-service-wrapper.js} +1 -1
- package/core/server/services/identity-tokens/index.js +1 -1
- package/core/server/services/indexnow.js +212 -0
- package/core/server/services/invites/index.js +1 -1
- package/core/server/services/link-redirection/index.js +2 -2
- package/core/server/services/link-redirection/{LinkRedirectRepository.js → link-redirect-repository.js} +1 -1
- package/core/server/services/link-redirection/{LinkRedirectsService.js → link-redirects-service.js} +2 -2
- package/core/server/services/link-redirection/{RedirectEvent.js → redirect-event.js} +1 -1
- package/core/server/services/link-tracking/index.js +3 -3
- package/core/server/services/link-tracking/{LinkClickRepository.js → link-click-repository.js} +1 -1
- package/core/server/services/link-tracking/{LinkClickTrackingService.js → link-click-tracking-service.js} +4 -4
- package/core/server/services/link-tracking/{PostLinkRepository.js → post-link-repository.js} +7 -7
- package/core/server/services/mail/{GhostMailer.js → ghost-mailer.js} +1 -1
- package/core/server/services/mail/index.js +2 -2
- package/core/server/services/media-inliner/service.js +1 -1
- package/core/server/services/member-attribution/README.md +6 -6
- package/core/server/services/member-attribution/{AttributionBuilder.js → attribution-builder.js} +4 -4
- package/core/server/services/member-attribution/index.js +5 -5
- package/core/server/services/member-attribution/{MemberAttributionService.js → member-attribution-service.js} +9 -9
- package/core/server/services/member-attribution/{ReferrerTranslator.js → referrer-translator.js} +1 -1
- package/core/server/services/member-attribution/{UrlTranslator.js → url-translator.js} +1 -1
- package/core/server/services/member-welcome-emails/constants.js +22 -1
- package/core/server/services/member-welcome-emails/service.js +23 -5
- package/core/server/services/members/api.js +1 -1
- package/core/server/services/members/importer/index.js +3 -3
- package/core/server/services/members/importer/{MembersCSVImporter.js → members-csv-importer.js} +2 -2
- package/core/server/services/members/members-api/members-api.js +14 -14
- package/core/server/services/members/members-api/repositories/{MemberRepository.js → member-repository.js} +17 -8
- package/core/server/services/members/members-api/services/{MemberBREADService.js → member-bread-service.js} +1 -1
- package/core/server/services/members/members-api/services/{PaymentsService.js → payments-service.js} +12 -12
- package/core/server/services/members/service.js +4 -4
- package/core/server/services/members-events/index.js +3 -3
- package/core/server/services/members-events/{LastSeenAtUpdater.js → last-seen-at-updater.js} +2 -2
- package/core/server/services/mentions/{BookshelfMentionRepository.js → bookshelf-mention-repository.js} +9 -9
- package/core/server/services/mentions/{InMemoryMentionRepository.js → in-memory-mention-repository.js} +4 -4
- package/core/server/services/mentions/{MentionController.js → mention-controller.js} +5 -5
- package/core/server/services/mentions/{MentionCreatedEvent.js → mention-created-event.js} +1 -1
- package/core/server/services/mentions/{Mention.js → mention.js} +1 -1
- package/core/server/services/mentions/{MentionsAPI.js → mentions-api.js} +1 -1
- package/core/server/services/mentions/{ResourceService.js → resource-service.js} +2 -2
- package/core/server/services/mentions/{RoutingService.js → routing-service.js} +2 -2
- package/core/server/services/mentions/service.js +11 -11
- package/core/server/services/mentions/{WebmentionMetadata.js → webmention-metadata.js} +1 -1
- package/core/server/services/mentions-email-report/job.js +1 -1
- package/core/server/services/mentions-email-report/{MentionEmailReportJob.js → mention-email-report-job.js} +1 -1
- package/core/server/services/mentions-email-report/service.js +2 -2
- package/core/server/services/milestones/{BookshelfMilestoneRepository.js → bookshelf-milestone-repository.js} +2 -2
- package/core/server/services/milestones/{InMemoryMilestoneRepository.js → in-memory-milestone-repository.js} +2 -2
- package/core/server/services/milestones/{Milestone.js → milestone.js} +1 -1
- package/core/server/services/milestones/{MilestonesService.js → milestones-service.js} +1 -1
- package/core/server/services/milestones/service.js +4 -4
- package/core/server/services/newsletters/index.js +2 -2
- package/core/server/services/newsletters/{NewslettersService.js → newsletters-service.js} +1 -1
- package/core/server/services/notifications/index.js +1 -1
- package/core/server/services/oembed/service.js +3 -3
- package/core/server/services/offers/application/{OfferMapper.js → offer-mapper.js} +1 -1
- package/core/server/services/offers/application/{OffersAPI.js → offers-api.js} +9 -9
- package/core/server/services/offers/application/{UniqueChecker.js → unique-checker.js} +2 -2
- package/core/server/services/offers/domain/events/{OfferCodeChangeEvent.js → offer-code-change-event.js} +1 -1
- package/core/server/services/offers/domain/events/{OfferCreatedEvent.js → offer-created-event.js} +1 -1
- package/core/server/services/offers/domain/models/{OfferAmount.js → offer-amount.js} +1 -1
- package/core/server/services/offers/domain/models/{OfferCadence.js → offer-cadence.js} +1 -1
- package/core/server/services/offers/domain/models/{OfferCode.js → offer-code.js} +1 -1
- package/core/server/services/offers/domain/models/{OfferCreatedAt.js → offer-created-at.js} +1 -1
- package/core/server/services/offers/domain/models/{OfferCurrency.js → offer-currency.js} +1 -1
- package/core/server/services/offers/domain/models/{OfferDescription.js → offer-description.js} +1 -1
- package/core/server/services/offers/domain/models/{OfferDuration.js → offer-duration.js} +1 -1
- package/core/server/services/offers/domain/models/{OfferName.js → offer-name.js} +1 -1
- package/core/server/services/offers/domain/models/{OfferStatus.js → offer-status.js} +1 -1
- package/core/server/services/offers/domain/models/{OfferTitle.js → offer-title.js} +1 -1
- package/core/server/services/offers/domain/models/{OfferType.js → offer-type.js} +1 -1
- package/core/server/services/offers/domain/models/{Offer.js → offer.js} +14 -14
- package/core/server/services/offers/domain/models/{StripeCoupon.js → stripe-coupon.js} +1 -1
- package/core/server/services/offers/{OfferBookshelfRepository.js → offer-bookshelf-repository.js} +6 -6
- package/core/server/services/offers/{OffersModule.js → offers-module.js} +4 -4
- package/core/server/services/offers/service.js +3 -3
- package/core/server/services/outbox/index.js +2 -2
- package/core/server/services/outbox/jobs/outbox-job.js +2 -2
- package/core/server/services/posts/posts-service-instance.js +47 -0
- package/core/server/services/posts/posts-service.js +572 -45
- package/core/server/services/recommendations/index.js +1 -1
- package/core/server/services/recommendations/{RecommendationEnablerService.js → recommendation-enabler-service.js} +2 -2
- package/core/server/services/recommendations/{RecommendationServiceWrapper.js → recommendation-service-wrapper.js} +2 -2
- package/core/server/services/recommendations/service/{BookshelfClickEventRepository.js → bookshelf-click-event-repository.js} +4 -4
- package/core/server/services/recommendations/service/{BookshelfClickEventRepository.ts → bookshelf-click-event-repository.ts} +2 -2
- package/core/server/services/recommendations/service/{BookshelfRecommendationRepository.js → bookshelf-recommendation-repository.js} +4 -4
- package/core/server/services/recommendations/service/{BookshelfRecommendationRepository.ts → bookshelf-recommendation-repository.ts} +3 -3
- package/core/server/services/recommendations/service/{BookshelfSubscribeEventRepository.js → bookshelf-subscribe-event-repository.js} +4 -4
- package/core/server/services/recommendations/service/{BookshelfSubscribeEventRepository.ts → bookshelf-subscribe-event-repository.ts} +2 -2
- package/core/server/services/recommendations/service/{InMemoryRecommendationRepository.js → in-memory-recommendation-repository.js} +2 -2
- package/core/server/services/recommendations/service/{InMemoryRecommendationRepository.ts → in-memory-recommendation-repository.ts} +3 -3
- package/core/server/services/recommendations/service/{IncomingRecommendationController.js → incoming-recommendation-controller.js} +2 -2
- package/core/server/services/recommendations/service/{IncomingRecommendationController.ts → incoming-recommendation-controller.ts} +3 -3
- package/core/server/services/recommendations/service/{IncomingRecommendationEmailRenderer.ts → incoming-recommendation-email-renderer.ts} +2 -2
- package/core/server/services/recommendations/service/{IncomingRecommendationService.ts → incoming-recommendation-service.ts} +2 -2
- package/core/server/services/recommendations/service/index.js +15 -15
- package/core/server/services/recommendations/service/index.ts +15 -15
- package/core/server/services/recommendations/service/{RecommendationController.js → recommendation-controller.js} +13 -13
- package/core/server/services/recommendations/service/{RecommendationController.ts → recommendation-controller.ts} +4 -4
- package/core/server/services/recommendations/service/{RecommendationRepository.ts → recommendation-repository.ts} +3 -3
- package/core/server/services/recommendations/service/{RecommendationService.js → recommendation-service.js} +6 -6
- package/core/server/services/recommendations/service/{RecommendationService.ts → recommendation-service.ts} +8 -8
- package/core/server/services/recommendations/service/{Recommendation.js → recommendation.js} +4 -4
- package/core/server/services/recommendations/service/{Recommendation.ts → recommendation.ts} +1 -1
- package/core/server/services/recommendations/service/{WellknownService.ts → well-known-service.ts} +1 -1
- package/core/server/services/route-settings/index.js +4 -4
- package/core/server/services/settings/{SettingsBREADService.js → settings-bread-service.js} +1 -1
- package/core/server/services/settings/settings-service.js +2 -2
- package/core/server/services/settings-helpers/index.js +1 -1
- package/core/server/services/settings-helpers/{SettingsHelpers.js → settings-helpers.js} +5 -5
- package/core/server/services/slack-notifications/service.js +4 -4
- package/core/server/services/slack-notifications/{SlackNotificationsService.js → slack-notifications-service.js} +2 -2
- package/core/server/services/slack-notifications/{SlackNotifications.js → slack-notifications.js} +2 -2
- package/core/server/services/staff/index.js +1 -1
- package/core/server/services/staff/{StaffServiceEmails.js → staff-service-emails.js} +2 -2
- package/core/server/services/staff/{StaffService.js → staff-service.js} +2 -2
- package/core/server/services/stats/{PostsStatsService.js → posts-stats-service.js} +25 -25
- package/core/server/services/stats/{ReferrersStatsService.js → referrers-stats-service.js} +3 -3
- package/core/server/services/stats/service.js +1 -1
- package/core/server/services/stats/{StatsService.js → stats-service.js} +23 -23
- package/core/server/services/stripe/events/index.js +2 -2
- package/core/server/services/stripe/service.js +1 -1
- package/core/server/services/stripe/services/webhook/{CheckoutSessionEventService.js → checkout-session-event-service.js} +2 -2
- package/core/server/services/stripe/{StripeMigrations.js → stripe-migrations.js} +1 -1
- package/core/server/services/stripe/{StripeService.js → stripe-service.js} +8 -8
- package/core/server/services/stripe/{WebhookController.js → webhook-controller.js} +4 -4
- package/core/server/services/stripe/{WebhookManager.js → webhook-manager.js} +5 -5
- package/core/server/services/themes/storage.js +1 -1
- package/core/server/services/tiers/{InMemoryTierRepository.js → in-memory-tier-repository.js} +1 -1
- package/core/server/services/tiers/service.js +2 -2
- package/core/server/services/tiers/{TierActivatedEvent.js → tier-activated-event.js} +1 -1
- package/core/server/services/tiers/{TierArchivedEvent.js → tier-archived-event.js} +1 -1
- package/core/server/services/tiers/{TierCreatedEvent.js → tier-created-event.js} +1 -1
- package/core/server/services/tiers/{TierNameChangeEvent.js → tier-name-change-event.js} +1 -1
- package/core/server/services/tiers/{TierPriceChangeEvent.js → tier-price-change-event.js} +1 -1
- package/core/server/services/tiers/{TierRepository.js → tier-repository.js} +7 -7
- package/core/server/services/tiers/{Tier.js → tier.js} +5 -5
- package/core/server/services/tiers/{TiersAPI.js → tiers-api.js} +1 -1
- package/core/server/services/tinybird/index.js +1 -1
- package/core/server/services/tinybird/{TinybirdServiceWrapper.js → tinybird-service-wrapper.js} +2 -2
- package/core/server/services/update-check/index.js +1 -1
- package/core/server/services/url/index.js +2 -2
- package/core/server/services/url/{Resources.js → resources.js} +1 -1
- package/core/server/services/url/{UrlGenerator.js → url-generator.js} +1 -1
- package/core/server/services/url/{UrlService.js → url-service.js} +4 -4
- package/core/server/services/url/{Urls.js → urls.js} +1 -1
- package/core/server/services/webhooks/listen.js +1 -1
- package/core/shared/labs.js +2 -1
- package/package.json +3 -3
- package/tsconfig.tsbuildinfo +1 -1
- package/components/tryghost-i18n-6.11.0.tgz +0 -0
- package/core/built/admin/assets/index-Cr_YX9yU.js +0 -1
- package/core/built/admin/assets/stats/index-BBCJ2EZo.mjs +0 -733
- package/core/server/services/posts/PostsService.js +0 -574
- /package/core/server/{GhostServer.js → ghost-server.js} +0 -0
- /package/core/server/services/activitypub/{ActivityPubService.js → activity-pub-service.js} +0 -0
- /package/core/server/services/adapter-manager/{AdapterManager.js → adapter-manager.js} +0 -0
- /package/core/server/services/announcement-bar-service/{AnnouncementVisibilityValues.js → announcement-visibility-values.js} +0 -0
- /package/core/server/services/audience-feedback/{AudienceFeedbackService.js → audience-feedback-service.js} +0 -0
- /package/core/server/services/audience-feedback/{FeedbackRepository.js → feedback-repository.js} +0 -0
- /package/core/server/services/audience-feedback/{Feedback.js → feedback.js} +0 -0
- /package/core/server/services/auth/session/{SessionStore.js → session-store.js} +0 -0
- /package/core/server/services/comments/{CommentsServiceEmailRenderer.js → comments-service-email-renderer.js} +0 -0
- /package/core/server/services/comments/{CommentsStatsService.js → comments-stats-service.js} +0 -0
- /package/core/server/services/custom-redirects/{CustomRedirectsAPI.js → custom-redirects-api.js} +0 -0
- /package/core/server/services/donations/{DonationBookshelfRepository.js → donation-bookshelf-repository.js} +0 -0
- /package/core/server/services/donations/{DonationPaymentEvent.js → donation-payment-event.js} +0 -0
- /package/core/server/services/donations/{DonationPaymentEvent.ts → donation-payment-event.ts} +0 -0
- /package/core/server/services/email-address/{EmailAddressParser.js → email-address-parser.js} +0 -0
- /package/core/server/services/email-address/{EmailAddressParser.js.d.ts → email-address-parser.js.d.ts} +0 -0
- /package/core/server/services/email-analytics/{EventProcessingResult.js → event-processing-result.js} +0 -0
- /package/core/server/services/email-analytics/events/{StartEmailAnalyticsJobEvent.js → start-email-analytics-job-event.js} +0 -0
- /package/core/server/services/email-service/{DomainWarmingService.js → domain-warming-service.js} +0 -0
- /package/core/server/services/email-service/{DomainWarmingService.ts → domain-warming-service.ts} +0 -0
- /package/core/server/services/email-service/{EmailBodyCache.js → email-body-cache.js} +0 -0
- /package/core/server/services/email-service/{EmailController.js → email-controller.js} +0 -0
- /package/core/server/services/email-service/{EmailSegmenter.js → email-segmenter.js} +0 -0
- /package/core/server/services/email-service/events/{EmailBouncedEvent.js → email-bounced-event.js} +0 -0
- /package/core/server/services/email-service/events/{EmailDeliveredEvent.js → email-delivered-event.js} +0 -0
- /package/core/server/services/email-service/events/{EmailOpenedEvent.js → email-opened-event.js} +0 -0
- /package/core/server/services/email-service/events/{EmailTemporaryBouncedEvent.js → email-temporary-bounced-event.js} +0 -0
- /package/core/server/services/email-service/events/{EmailUnsubscribedEvent.js → email-unsubscribed-event.js} +0 -0
- /package/core/server/services/email-service/events/{SpamComplaintEvent.js → spam-complaint-event.js} +0 -0
- /package/core/server/services/email-suppression-list/{EmailSuppressionList.js → email-suppression-list.js} +0 -0
- /package/core/server/services/explore/{ExploreService.js → explore-service.js} +0 -0
- /package/core/server/services/explore-ping/{ExplorePingService.js → explore-ping-service.js} +0 -0
- /package/core/server/services/frontend-data-service/{FrontendDataService.js → front-end-data-service.js} +0 -0
- /package/core/server/services/identity-tokens/{IdentityTokenService.js → identity-token-service.js} +0 -0
- /package/core/server/services/identity-tokens/{IdentityTokenService.ts → identity-token-service.ts} +0 -0
- /package/core/server/services/invites/{Invites.js → invites.js} +0 -0
- /package/core/server/services/lib/{DynamicRedirectManager.js → dynamic-redirect-manager.js} +0 -0
- /package/core/server/services/lib/{EmailContentGenerator.js → email-content-generator.js} +0 -0
- /package/core/server/services/lib/{InMemoryRepository.js → in-memory-repository.js} +0 -0
- /package/core/server/services/lib/{InMemoryRepository.ts → in-memory-repository.ts} +0 -0
- /package/core/server/services/lib/magic-link/{MagicLink.js → magic-link.js} +0 -0
- /package/core/server/services/lib/{MailgunClient.js → mailgun-client.js} +0 -0
- /package/core/server/services/link-redirection/{LinkRedirect.js → link-redirect.js} +0 -0
- /package/core/server/services/link-tracking/{ClickEvent.js → click-event.js} +0 -0
- /package/core/server/services/link-tracking/{FullPostLink.js → full-post-link.js} +0 -0
- /package/core/server/services/link-tracking/{PostLink.js → post-link.js} +0 -0
- /package/core/server/services/media-inliner/{ExternalMediaInliner.js → external-media-inliner.js} +0 -0
- /package/core/server/services/member-attribution/{OutboundLinkTagger.js → outbound-link-tagger.js} +0 -0
- /package/core/server/services/member-attribution/{UrlHistory.js → url-history.js} +0 -0
- /package/core/server/services/member-welcome-emails/{MemberWelcomeEmailRenderer.js → member-welcome-email-renderer.js} +0 -0
- /package/core/server/services/members/importer/{MembersCSVImporterStripeUtils.js → members-csv-importer-stripe-utils.js} +0 -0
- /package/core/server/services/members/members-api/controllers/{MemberController.js → member-controller.js} +0 -0
- /package/core/server/services/members/members-api/controllers/{RouterController.js → router-controller.js} +0 -0
- /package/core/server/services/members/members-api/controllers/{WellKnownController.js → well-known-controller.js} +0 -0
- /package/core/server/services/members/members-api/repositories/{EventRepository.js → event-repository.js} +0 -0
- /package/core/server/services/members/members-api/repositories/{ProductRepository.js → product-repository.js} +0 -0
- /package/core/server/services/members/members-api/services/{GeolocationService.js → geolocation-service.js} +0 -0
- /package/core/server/services/members/members-api/services/{TokenService.js → token-service.js} +0 -0
- /package/core/server/services/members/{MembersConfigProvider.js → members-config-provider.js} +0 -0
- /package/core/server/services/members/{RequestIntegrityTokenProvider.js → request-integrity-token-provider.js} +0 -0
- /package/core/server/services/members/{SingleUseTokenProvider.js → single-use-token-provider.js} +0 -0
- /package/core/server/services/members/stats/{MembersStats.js → members-stats.js} +0 -0
- /package/core/server/services/members-events/{EventStorage.js → event-storage.js} +0 -0
- /package/core/server/services/members-events/{LastSeenAtCache.js → last-seen-at-cache.js} +0 -0
- /package/core/server/services/mentions/{MentionDiscoveryService.js → mention-discovery-service.js} +0 -0
- /package/core/server/services/mentions/{MentionSendingService.js → mention-sending-service.js} +0 -0
- /package/core/server/services/mentions-email-report/{StartMentionEmailReportJob.js → start-mention-email-report-job.js} +0 -0
- /package/core/server/services/milestones/{MilestoneCreatedEvent.js → milestone-created-event.js} +0 -0
- /package/core/server/services/milestones/{MilestoneQueries.js → milestone-queries.js} +0 -0
- /package/core/server/services/notifications/{Notifications.js → notifications.js} +0 -0
- /package/core/server/services/oembed/{NFTOEmbedProvider.js → nft-oembed-provider.js} +0 -0
- /package/core/server/services/oembed/{OEmbedService.js → oembed-service.js} +0 -0
- /package/core/server/services/oembed/{TwitterOEmbedProvider.js → twitter-oembed-provider.js} +0 -0
- /package/core/server/services/offers/domain/models/shared/{ValueObject.js → value-object.js} +0 -0
- /package/core/server/services/outbox/events/{StartOutboxProcessingEvent.js → start-outbox-processing-event.js} +0 -0
- /package/core/server/services/posts/{PostsExporter.js → posts-exporter.js} +0 -0
- /package/core/server/services/posts/stats/{PostStats.js → post-stats.js} +0 -0
- /package/core/server/services/recommendations/service/{BookshelfRepository.js → bookshelf-repository.js} +0 -0
- /package/core/server/services/recommendations/service/{BookshelfRepository.ts → bookshelf-repository.ts} +0 -0
- /package/core/server/services/recommendations/service/{ClickEvent.js → click-event.js} +0 -0
- /package/core/server/services/recommendations/service/{ClickEvent.ts → click-event.ts} +0 -0
- /package/core/server/services/recommendations/service/{IncomingRecommendationEmailRenderer.js → incoming-recommendation-email-renderer.js} +0 -0
- /package/core/server/services/recommendations/service/{IncomingRecommendationService.js → incoming-recommendation-service.js} +0 -0
- /package/core/server/services/recommendations/service/{RecommendationMetadataService.js → recommendation-metadata-service.js} +0 -0
- /package/core/server/services/recommendations/service/{RecommendationMetadataService.ts → recommendation-metadata-service.ts} +0 -0
- /package/core/server/services/recommendations/service/{RecommendationRepository.js → recommendation-repository.js} +0 -0
- /package/core/server/services/recommendations/service/{SubscribeEvent.js → subscribe-event.js} +0 -0
- /package/core/server/services/recommendations/service/{SubscribeEvent.ts → subscribe-event.ts} +0 -0
- /package/core/server/services/recommendations/service/{UnsafeData.js → unsafe-data.js} +0 -0
- /package/core/server/services/recommendations/service/{UnsafeData.ts → unsafe-data.ts} +0 -0
- /package/core/server/services/recommendations/service/{WellknownService.js → well-known-service.js} +0 -0
- /package/core/server/services/route-settings/{DefaultSettingsManager.js → default-settings-manager.js} +0 -0
- /package/core/server/services/route-settings/{RouteSettings.js → route-settings.js} +0 -0
- /package/core/server/services/route-settings/{SettingsLoader.js → settings-loader.js} +0 -0
- /package/core/server/services/route-settings/{SettingsPathManager.js → settings-path-manager.js} +0 -0
- /package/core/server/services/stats/{ContentStatsService.js → content-stats-service.js} +0 -0
- /package/core/server/services/stats/{MembersStatsService.js → members-stats-service.js} +0 -0
- /package/core/server/services/stats/{MrrStatsService.js → mrr-stats-service.js} +0 -0
- /package/core/server/services/stats/{SubscriptionStatsService.js → subscription-stats-service.js} +0 -0
- /package/core/server/services/stripe/events/{StripeLiveDisabledEvent.js → stripe-live-disabled-event.js} +0 -0
- /package/core/server/services/stripe/events/{StripeLiveEnabledEvent.js → stripe-live-enabled-event.js} +0 -0
- /package/core/server/services/stripe/services/webhook/{InvoiceEventService.js → invoice-event-service.js} +0 -0
- /package/core/server/services/stripe/services/webhook/{SubscriptionEventService.js → subscription-event-service.js} +0 -0
- /package/core/server/services/stripe/{StripeAPI.js → stripe-api.js} +0 -0
- /package/core/server/services/themes/{ThemeStorage.js → theme-storage.js} +0 -0
- /package/core/server/services/tinybird/{TinybirdService.js → tinybird-service.js} +0 -0
- /package/core/server/services/update-check/{UpdateCheckService.js → update-check-service.js} +0 -0
- /package/core/server/services/url/{LocalFileCache.js → local-file-cache.js} +0 -0
- /package/core/server/services/url/{Queue.js → queue.js} +0 -0
- /package/core/server/services/url/{Resource.js → resource.js} +0 -0
- /package/core/server/services/{Users.js → users.js} +0 -0
- /package/core/server/services/{VerificationTrigger.js → verification-trigger.js} +0 -0
- /package/core/server/services/webhooks/{WebhookTrigger.js → webhook-trigger.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as c,b3 as U,aM as te,bR as se,b4 as z,aj as T,j as e,aN as ee,ai as w,aW as pe,ap as he,aY as xe,a_ as I,bT as fe,bU as ae,af as X,ag as K,bV as ge,e as Q,bP as be,B as je}from"./index-BYawr8p9.js";import{s as ve,g as q,S as ke,a as we,D as Ne,b as Se}from"./stats-view-DzZxrBDz.js";import{C as _e,a as ye,R as Ce,B as Te}from"./chart-DGA1MaFs.js";import{E as re}from"./empty-indicator-DBrIZcFq.js";import{G as Me,C as De,X as Le,Y as Re}from"./gh-chart-BV97-O7c.js";import{T as Be,a as Pe,K as Y,d as B,e as Ee}from"./tabs-C2sFfNcp.js";import{B as Oe,S as $}from"./sort-button-iOtR-vQ1.js";import{M as le}from"./wallet-cards-KaTkgqvi.js";import{S as Ae,a as Ve,b as We,c as $e,d as He,e as Ke,f as ze}from"./select-BhvNY3I-.js";import{M as Fe}from"./lucide-react-DKlmxVQI.js";import{j as Ge,C as ne,c as oe,a as Ie,b as Ye,h as Ue}from"./pagemenu-BMXHDXYy.js";import{a as Xe,e as Qe,b as qe,c as H,d as E,f as L}from"./table-DeBuf80X.js";import{u as Je}from"./newsletters-DUusEYSg.js";import{e as Ze,f as et,g as tt}from"./stats-r0Bphuvi.js";import"./message-square-text-CaMVBVPr.js";import"./sprout-BW9HFVU8.js";import"./_baseAssignValue-BX8EallQ.js";import"./index-Kji6JKl7.js";import"./a-large-small-CKZJgscl.js";import"./at-sign-CqQzllfI.js";import"./copy-BFuV16bY.js";import"./hash-CdH0ikFp.js";import"./inbox-Bd0uf1Ez.js";import"./minus-2XwCoFJV.js";import"./tags-BL_N4nn2.js";import"./square-BCNGSZhW.js";import"./user-round-check-BjHbfXKY.js";import"./repeat-COP-3g8d.js";import"./reply-JE8tmvOn.js";import"./trash-BglGemAb.js";const st=({active:a,payload:s})=>{if(!a||!s?.length)return null;const r=s[0].payload,o=r.send_date;return e.jsxs("div",{className:"min-w-[220px] max-w-[240px] rounded-lg border bg-background px-3 py-2 shadow-lg",children:[e.jsxs("div",{className:"mb-2 flex w-full flex-col border-b pb-2",children:[e.jsx("span",{className:"text-sm font-semibold leading-tight",children:r.post_title}),e.jsxs("span",{className:"text-sm text-muted-foreground",children:["Sent on ",ae(o)]})]}),e.jsxs("div",{className:"mb-1 flex w-full justify-between",children:[e.jsx("span",{className:"font-medium text-muted-foreground",children:"Sent"}),e.jsx("div",{className:"ml-2 w-full text-right font-mono",children:T(r.sent_to)})]}),e.jsxs("div",{className:"mb-1 flex w-full justify-between",children:[e.jsx("span",{className:"font-medium text-muted-foreground",children:"Opens"}),e.jsxs("div",{className:"ml-2 w-full text-right font-mono",children:[e.jsxs("span",{className:"text-muted-foreground",children:[T(r.total_opens)," / "]}),w(r.open_rate)]})]}),e.jsxs("div",{className:"mb-1 flex w-full justify-between",children:[e.jsx("span",{className:"font-medium text-muted-foreground",children:"Clicks"}),e.jsxs("div",{className:"ml-2 w-full text-right font-mono",children:[e.jsxs("span",{className:"text-muted-foreground",children:[T(r.total_clicks)," / "]}),w(r.click_rate)]})]})]})},at=({subscribersData:a,avgsData:s,totals:r,isLoading:o,isAvgsLoading:t,initialTab:n="total-subscribers"})=>{const[l,h]=c.useState(n),[p,g]=c.useState(!1),{range:d}=U(),N=te(),[j]=se(),{appSettings:y}=z(),{emailTrackClicks:k,emailTrackOpens:u}=y?.analytics||{},{totalSubscribers:O,avgOpenRate:D,avgClickRate:m}=r,f=c.useMemo(()=>{if(!a||a.length===0)return[];let i=[];return i=ve(a,d,"value","exact"),i.map(M=>({...M,formattedValue:T(M.value),label:"Total Subscribers"}))},[a,d]),S=c.useMemo(()=>{if(!f||f.length<=1)return{direction:"same",value:"0%"};const i=f[0]?.value??0,v=f[f.length-1]?.value??0;let M="same";v>i?M="up":v<i&&(M="down");let P;if(i===0)P=v===0?"0%":"+100%";else{const A=(v-i)/i*100,V=Math.round(A*10)/10;P=`${A>=0?"+":""}${V}%`}return{direction:M,value:P}},[f]);c.useEffect(()=>{h(n)},[n]);const x=i=>{h(i);const v=new URLSearchParams(j);v.set("tab",i),N(`?${v.toString()}`,{replace:!0})},_={open_rate:{label:"Open rate"}},b=c.useMemo(()=>({"total-subscribers":{color:"hsl(var(--chart-darkblue))",datakey:"value"},"avg-open-rate":{color:"hsl(var(--chart-blue))",datakey:"open_rate"},"avg-click-rate":{color:"hsl(var(--chart-teal))",datakey:"click_rate"}}),[]),{barDomain:C,barTicks:R}=c.useMemo(()=>{if(!s||s.length===0||l==="total-subscribers")return{barDomain:[0,1],barTicks:[0,1]};const i=b[l]?.datakey;if(!i)return{barDomain:[0,1],barTicks:[0,1]};const v=s.map(G=>G[i]).filter(G=>typeof G=="number");if(v.length===0)return{barDomain:[0,1],barTicks:[0,1]};const M=Math.min(...v),P=Math.max(...v),A=Math.floor(M*10)/10,V=Math.ceil(P*10)/10,W=Math.max(0,A),Z=V===W?W+.1:V;return{barDomain:[W,Z],barTicks:[W,Z]}},[s,l,b]);if(o)return e.jsx("div",{className:"-mb-6 flex h-[calc(16vw+132px)] w-full items-start justify-center",children:e.jsx(ee,{})});let F="grid-cols-3";(!k||!u)&&(F="grid-cols-2"),!k&&!u&&(F="grid-cols-1");const ue=l==="avg-open-rate"&&D>C[0]&&D<C[1]||l==="avg-click-rate"&&m>C[0]&&m<C[1],J=l==="avg-open-rate"?D:m;return e.jsxs(Be,{defaultValue:n,variant:"kpis",children:[e.jsxs(Pe,{className:`-mx-6 hidden grid-cols-3 md:!visible md:!grid ${F}`,children:[e.jsx(Y,{className:`${!u&&!k&&"cursor-auto after:hidden"}`,value:"total-subscribers",onClick:()=>{x("total-subscribers")},children:e.jsx(B,{color:b["total-subscribers"].color,"data-testid":"total-subscribers-value",diffDirection:S.direction,diffValue:S.value,label:"Total subscribers",value:T(O)})}),u&&e.jsx(Y,{value:"avg-open-rate",onClick:()=>{x("avg-open-rate")},children:e.jsx(B,{className:t?"opacity-50":"",color:b["avg-open-rate"].color,label:"Avg. open rate",value:w(D)})}),k&&e.jsx(Y,{value:"avg-click-rate",onClick:()=>{x("avg-click-rate")},children:e.jsx(B,{className:t?"opacity-50":"",color:b["avg-click-rate"].color,label:"Avg. click rate",value:w(m)})})]}),e.jsxs(pe,{children:[e.jsx(he,{className:"md:hidden",asChild:!0,children:e.jsxs(Ee,{children:[l==="total-subscribers"&&e.jsx(B,{color:b["total-subscribers"].color,label:"Total subscribers",value:T(O)}),l==="avg-open-rate"&&u&&e.jsx(B,{className:t?"opacity-50":"",color:b["avg-open-rate"].color,label:"Avg. open rate",value:w(D)}),l==="avg-click-rate"&&k&&e.jsx(B,{className:t?"opacity-50":"",color:b["avg-click-rate"].color,label:"Avg. click rate",value:w(m)})]})}),e.jsxs(xe,{align:"end",className:"w-56",children:[e.jsx(I,{onClick:()=>x("total-subscribers"),children:"Total subscribers"}),u&&e.jsx(I,{onClick:()=>x("avg-open-rate"),children:"Avg. open rate"}),k&&e.jsx(I,{onClick:()=>x("avg-click-rate"),children:"Avg. click rate"})]})]}),e.jsxs("div",{className:"my-4 [&_.recharts-cartesian-axis-tick-value]:fill-gray-500",children:[l==="total-subscribers"&&e.jsx(Me,{className:"-mb-3 h-[16vw] max-h-[320px] min-h-[180px] w-full",color:b["total-subscribers"].color,data:f,id:"mrr",range:d}),(l==="avg-open-rate"&&u||l==="avg-click-rate"&&k)&&e.jsx(e.Fragment,{children:t?e.jsx("div",{className:"h-[320px] w-full items-center justify-center",children:e.jsx(ee,{})}):s&&s.length>0?e.jsxs(e.Fragment,{children:[e.jsx(_e,{className:"aspect-auto h-[200px] w-full md:h-[220px] xl:h-[320px]",config:_,children:e.jsxs(Oe,{className:p?"!cursor-pointer":"",data:s,margin:{top:20},onClick:i=>{i.activePayload&&i.activePayload[0].payload.post_id&&N(`/posts/analytics/${i.activePayload[0].payload.post_id}`,{crossApp:!0})},onMouseLeave:()=>g(!1),onMouseMove:i=>{g(!!(i.activePayload&&i.activePayload[0].payload.post_id))},children:[e.jsx("defs",{children:e.jsxs("linearGradient",{id:"barGradient",x1:"0",x2:"0",y1:"0",y2:"1",children:[e.jsx("stop",{offset:"0%",stopColor:b[l].color,stopOpacity:.8}),e.jsx("stop",{offset:"100%",stopColor:b[l].color,stopOpacity:.6})]})}),e.jsx(De,{horizontal:!0,stroke:"hsl(var(--border))",vertical:!1}),e.jsx(Le,{axisLine:{stroke:"hsl(var(--border))",strokeWidth:1},dataKey:"post_id",interval:0,stroke:"hsl(var(--border))",tickFormatter:()=>"",tickLine:!1,tickMargin:10}),e.jsx(Re,{axisLine:!1,domain:C,tickFormatter:i=>w(i),tickLine:!1,ticks:R,width:fe(R,i=>w(i))}),e.jsx(ye,{content:e.jsx(st,{}),cursor:!1,isAnimationActive:!1,position:{y:10}}),ue&&e.jsx(Ce,{label:{value:`${w(J)}`,position:"left",offset:8,fill:"hsl(var(--muted-foreground))"},opacity:.5,stroke:"hsl(var(--muted-foreground))",strokeDasharray:"4 4",y:J}),e.jsx(Te,{activeBar:{fillOpacity:1},dataKey:b[l].datakey,fill:"url(#barGradient)",fillOpacity:.6,isAnimationActive:!1,maxBarSize:32,minPointSize:3,radius:4})]})}),e.jsxs("div",{className:"-mt-4 text-center text-sm text-muted-foreground",children:["Newsletters ",l==="avg-open-rate"?"opens":"clicks"," in this period"]})]}):e.jsx(re,{className:"size-full py-20",title:`No newsletters ${q(d)}`,children:e.jsx(le,{strokeWidth:1.5})})})]})]})},rt=({newsletters:a})=>{const{selectedNewsletterId:s,setSelectedNewsletterId:r}=U(),o=c.useMemo(()=>a?.filter(t=>t.status==="active")||[],[a]);return c.useEffect(()=>{if(o.length>0&&!s){const t=o.find(n=>n.sort_order===0);r(t?t.id:o[0].id)}},[o,s,r]),o.length<=1?null:e.jsxs(Ae,{value:s||"",onValueChange:t=>{r(t)},children:[e.jsxs(Ve,{className:"w-auto",children:[e.jsx(Fe,{className:"mr-2",size:16,strokeWidth:1.5}),e.jsx(We,{placeholder:"Select a newsletter"})]}),e.jsx($e,{align:"end",children:e.jsxs(He,{children:[e.jsx(Ke,{children:"Newsletters"}),o.map(t=>e.jsx(ze,{value:t.id,children:t.name},t.id))]})})]})},lt=(a,s,r=!0)=>{const o=a??30,{startDate:t,endDate:n}=c.useMemo(()=>X(o),[o]),l=c.useMemo(()=>{const p={date_from:K(t),date_to:K(n)};return s&&(p.newsletter_id=s),p},[t,n,s]),h=Ze({searchParams:l,enabled:r});return r?h:{data:void 0,isLoading:!1,error:null,isError:!1,refetch:h.refetch}},nt=(a,s,r,o=!0)=>{const t=a??30,n=s??"date desc",{startDate:l,endDate:h}=c.useMemo(()=>X(t),[t]),p=c.useMemo(()=>{const d={date_from:K(l),date_to:K(h),order:n};return r&&(d.newsletter_id=r),d},[l,h,n,r]),g=et({searchParams:p,enabled:o});return o?g:{data:void 0,isLoading:!1,error:null,isError:!1,refetch:g.refetch}},ot=(a,s=[],r=!0)=>{const o=c.useMemo(()=>{const n={};return a&&(n.newsletter_id=a),s.length>0&&(n.post_ids=s.join(",")),n},[a,s]),t=tt({searchParams:o,enabled:r});return r?t:{data:void 0,isLoading:!1,error:null,isError:!1,refetch:t.refetch}},ie=(a,s,r,o=!0)=>{const t=nt(a,s,r,o),n=c.useMemo(()=>t.data?.stats?t.data.stats.map(p=>p.post_id):[],[t.data]),l=ot(r,n,o&&n.length>0);return{data:c.useMemo(()=>{if(!t.data?.stats)return;const p=t.data.stats,g=l.data?.stats||[],d=new Map;g.forEach(j=>{d.set(j.post_id,j)});const N=p.map(j=>{const y=d.get(j.post_id);return{...j,total_clicks:y?.total_clicks||0,click_rate:y?.click_rate||0}});return{...t.data,stats:N}},[t.data,l.data]),isLoading:t.isLoading,isClicksLoading:l.isLoading,error:t.error||l.error,isError:t.isError||l.isError,refetch:()=>{t.refetch(),l.refetch()}}},ce=Q.memo(({range:a,selectedNewsletterId:s,shouldFetchStats:r,sortBy:o})=>{const t=te(),{data:n,isLoading:l,isClicksLoading:h}=ie(a,o,s||void 0,!!r),{appSettings:p}=z(),{emailTrackClicks:g,emailTrackOpens:d}=p?.analytics||{},N=c.useMemo(()=>n?.stats||[],[n]),j=d&&g?5:d||g?4:3,y=c.useMemo(()=>e.jsx(e.Fragment,{children:e.jsx(H,{className:"last:border-none [&>td]:py-2.5",children:e.jsx(L,{className:"font-medium",colSpan:j,children:e.jsx(be,{className:"mt-5"})})})}),[j]),k=c.useMemo(()=>N.length>0?e.jsx(e.Fragment,{children:N.map(u=>e.jsxs(H,{className:"last:border-none [&>td]:py-2.5",children:[e.jsx(L,{className:"font-medium",children:e.jsx("div",{className:"group/link inline-flex items-center gap-2",children:u.post_id?e.jsx(je,{className:"h-auto whitespace-normal p-0 text-left hover:!underline",title:"View post analytics",variant:"link",onClick:()=>{t(`/posts/analytics/${u.post_id}/`,{crossApp:!0})},children:u.post_title}):e.jsx(e.Fragment,{children:u.post_title})})}),e.jsx(L,{className:"whitespace-nowrap text-sm",children:ae(u.send_date)}),e.jsx(L,{className:"text-right font-mono text-sm",children:T(u.sent_to)}),d&&e.jsxs(L,{className:"text-right font-mono text-sm",children:[e.jsx("span",{className:"group-hover:hidden",children:w(u.open_rate)}),e.jsx("span",{className:"hidden group-hover:!visible group-hover:!block",children:T(u.total_opens)})]}),g&&e.jsx(L,{className:"text-right font-mono text-sm",children:h?e.jsx("span",{className:"inline-block h-4 w-8 animate-pulse rounded bg-gray-200"}):e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"group-hover:hidden",children:w(u.click_rate)}),e.jsx("span",{className:"hidden group-hover:!visible group-hover:!block",children:T(u.total_clicks)})]})})]},u.post_id))}):e.jsx(H,{className:"border-none hover:bg-transparent",children:e.jsx(L,{className:"text-center group-hover:!bg-transparent",colSpan:5,children:e.jsx(re,{className:"size-full py-20",title:`No newsletters ${q(a)}`,children:e.jsx(le,{strokeWidth:1.5})})})}),[N,h,t,g,d,a]);return l||!n?y:k});ce.displayName="NewsletterTableRows";const de=Q.memo(({sortBy:a,setSortBy:s,range:r})=>{const o=c.useMemo(()=>e.jsxs(Ie,{children:[e.jsx(Ye,{children:"Top newsletters"}),e.jsxs(Ue,{children:[" Your best performing newsletters ",q(r)]})]}),[r]),{appSettings:t}=z(),{emailTrackClicks:n,emailTrackOpens:l}=t?.analytics||{};return e.jsx(qe,{children:e.jsxs(H,{children:[e.jsx(E,{className:"min-w-[320px]",variant:"cardhead",children:o}),e.jsx(E,{className:"w-[65px]",children:e.jsx($,{activeSortBy:a,setSortBy:s,sortBy:"date desc",children:"Date"})}),e.jsx(E,{className:"w-[90px] text-right",children:e.jsx($,{activeSortBy:a,setSortBy:s,sortBy:"sent_to desc",children:"Sent"})}),l&&e.jsx(E,{className:"w-[90px] text-right",children:e.jsx($,{activeSortBy:a,setSortBy:s,sortBy:"open_rate desc",children:"Opens"})}),n&&e.jsx(E,{className:"w-[90px] text-right",children:e.jsx($,{activeSortBy:a,setSortBy:s,sortBy:"click_rate desc",children:"Clicks"})})]})})});de.displayName="NewsletterTableHeader";const me=Q.memo(({range:a,selectedNewsletterId:s,shouldFetchStats:r})=>{const[o,t]=c.useState("open_rate desc");return e.jsx(ne,{className:"w-full max-w-[calc(100vw-64px)] overflow-x-auto sidebar:max-w-[calc(100vw-64px-280px)]","data-testid":"top-newsletters-card",children:e.jsx(oe,{children:e.jsxs(Xe,{children:[e.jsx(de,{range:a,setSortBy:t,sortBy:o}),e.jsx(Qe,{children:e.jsx(ce,{range:a,selectedNewsletterId:s,shouldFetchStats:r,sortBy:o})})]})})})});me.displayName="TopNewslettersTable";const Vt=()=>{const{range:a,selectedNewsletterId:s}=U(),[r]=se(),{appSettings:o}=z(),t=r.get("tab")||"total-subscribers",{data:n,isLoading:l}=Je({searchParams:{limit:"50"}}),h=!l&&n&&n.newsletters.length>0&&!!s,{data:p,isLoading:g}=lt(a,s||void 0,h||!1),{data:d,isLoading:N,isClicksLoading:j}=ie(a,"date asc",s||void 0,h||!1),y=c.useMemo(()=>!n?.newsletters||!s?null:n.newsletters.find(m=>m.id===s)||null,[n,s]),k=c.useMemo(()=>{const m=y?.count?.active_members||p?.stats?.[0]?.total||0;let f=0,S=0;if(d?.stats&&d.stats.length>0){const x=d.stats,_=x.reduce((C,R)=>C+(R.open_rate||0),0),b=x.reduce((C,R)=>C+(R.click_rate||0),0);f=_/x.length,S=b/x.length}return{totalSubscribers:m,avgOpenRate:f,avgClickRate:S}},[y,p,d]),u=c.useMemo(()=>{if(!p?.stats?.[0]?.values||p.stats[0].values.length===0){const{startDate:f,endDate:S}=X(a),x=[],_=new Date(f);for(;_<=S;)x.push({date:_.toISOString().split("T")[0],value:0}),_.setDate(_.getDate()+1);return x}const m=p.stats[0].values;if(m.length===1){const f=m[0],S=new Date,x=a,_=new Date(S.getTime()-x*24*60*60*1e3);return[{...f,date:_.toISOString().split("T")[0]},{...f,date:S.toISOString().split("T")[0]}]}return m},[p,a]),O=c.useMemo(()=>d?.stats?d.stats.map(m=>({post_id:m.post_id,post_title:m.post_title,send_date:m.send_date,sent_to:m.sent_to,total_opens:m.total_opens,open_rate:m.open_rate,total_clicks:m.total_clicks||0,click_rate:m.click_rate||0})):[],[d]),D=g||j||N;return o?.newslettersEnabled?e.jsxs(ke,{children:[e.jsx(we,{children:e.jsxs(Ge,{children:[e.jsx(rt,{newsletters:n?.newsletters}),e.jsx(Ne,{})]})}),e.jsx(Se,{isLoading:!1,loadingComponent:e.jsx(e.Fragment,{}),children:e.jsxs(e.Fragment,{children:[e.jsx(ne,{"data-testid":"newsletters-card",children:e.jsx(oe,{children:e.jsx(at,{avgsData:O,initialTab:t,isAvgsLoading:!1,isLoading:D,subscribersData:u,totals:k})})}),e.jsx(me,{range:a,selectedNewsletterId:s,shouldFetchStats:!!h})]})})]}):e.jsx(ge,{to:"/"})};export{Vt as default};
|
|
1
|
+
import{r as c,b3 as U,aM as te,bR as se,b4 as z,aj as T,j as e,aN as ee,ai as w,aW as pe,ap as he,aY as xe,a_ as I,bT as fe,bU as ae,af as X,ag as K,bV as ge,e as Q,bP as be,B as je}from"./index-CJU9a2PB.js";import{s as ve,g as q,S as ke,a as we,D as Ne,b as Se}from"./stats-view-C6MTCwRW.js";import{C as _e,a as ye,R as Ce,B as Te}from"./chart-CqJxisVP.js";import{E as re}from"./empty-indicator-BXWniwsl.js";import{G as Me,C as De,X as Le,Y as Re}from"./gh-chart-DwTCK8z_.js";import{T as Be,a as Pe,K as Y,d as B,e as Ee}from"./tabs-BwQ-i6MY.js";import{B as Oe,S as $}from"./sort-button-84sYUZMN.js";import{M as le}from"./wallet-cards-Do7nPf3f.js";import{S as Ae,a as Ve,b as We,c as $e,d as He,e as Ke,f as ze}from"./select-B4QhMW5f.js";import{M as Fe}from"./lucide-react-B7UnD_Dp.js";import{j as Ge,C as ne,c as oe,a as Ie,b as Ye,h as Ue}from"./pagemenu-aHubMPwB.js";import{a as Xe,e as Qe,b as qe,c as H,d as E,f as L}from"./table-mjAkKNdb.js";import{u as Je}from"./newsletters-N6bwI1OF.js";import{e as Ze,f as et,g as tt}from"./stats-B1mhlQSp.js";import"./message-square-text-CS3iRuPc.js";import"./sprout-C2R5CbXV.js";import"./_baseAssignValue-hsL6ItjC.js";import"./index-6syrC9X1.js";import"./a-large-small-BPPu_Iy7.js";import"./at-sign-CYnGzOFc.js";import"./copy-DWiB-781.js";import"./hash-p9dv0yuc.js";import"./inbox-CRoP9sy5.js";import"./minus-emzwh6hq.js";import"./tags-DXDZbfxp.js";import"./square-DT1uWkxs.js";import"./user-round-check-D3ihrrKL.js";import"./repeat-ms5ocvE0.js";import"./reply-BvO85IDn.js";import"./trash-CZ3EXwTL.js";const st=({active:a,payload:s})=>{if(!a||!s?.length)return null;const r=s[0].payload,o=r.send_date;return e.jsxs("div",{className:"min-w-[220px] max-w-[240px] rounded-lg border bg-background px-3 py-2 shadow-lg",children:[e.jsxs("div",{className:"mb-2 flex w-full flex-col border-b pb-2",children:[e.jsx("span",{className:"text-sm font-semibold leading-tight",children:r.post_title}),e.jsxs("span",{className:"text-sm text-muted-foreground",children:["Sent on ",ae(o)]})]}),e.jsxs("div",{className:"mb-1 flex w-full justify-between",children:[e.jsx("span",{className:"font-medium text-muted-foreground",children:"Sent"}),e.jsx("div",{className:"ml-2 w-full text-right font-mono",children:T(r.sent_to)})]}),e.jsxs("div",{className:"mb-1 flex w-full justify-between",children:[e.jsx("span",{className:"font-medium text-muted-foreground",children:"Opens"}),e.jsxs("div",{className:"ml-2 w-full text-right font-mono",children:[e.jsxs("span",{className:"text-muted-foreground",children:[T(r.total_opens)," / "]}),w(r.open_rate)]})]}),e.jsxs("div",{className:"mb-1 flex w-full justify-between",children:[e.jsx("span",{className:"font-medium text-muted-foreground",children:"Clicks"}),e.jsxs("div",{className:"ml-2 w-full text-right font-mono",children:[e.jsxs("span",{className:"text-muted-foreground",children:[T(r.total_clicks)," / "]}),w(r.click_rate)]})]})]})},at=({subscribersData:a,avgsData:s,totals:r,isLoading:o,isAvgsLoading:t,initialTab:n="total-subscribers"})=>{const[l,h]=c.useState(n),[p,g]=c.useState(!1),{range:d}=U(),N=te(),[j]=se(),{appSettings:y}=z(),{emailTrackClicks:k,emailTrackOpens:u}=y?.analytics||{},{totalSubscribers:O,avgOpenRate:D,avgClickRate:m}=r,f=c.useMemo(()=>{if(!a||a.length===0)return[];let i=[];return i=ve(a,d,"value","exact"),i.map(M=>({...M,formattedValue:T(M.value),label:"Total Subscribers"}))},[a,d]),S=c.useMemo(()=>{if(!f||f.length<=1)return{direction:"same",value:"0%"};const i=f[0]?.value??0,v=f[f.length-1]?.value??0;let M="same";v>i?M="up":v<i&&(M="down");let P;if(i===0)P=v===0?"0%":"+100%";else{const A=(v-i)/i*100,V=Math.round(A*10)/10;P=`${A>=0?"+":""}${V}%`}return{direction:M,value:P}},[f]);c.useEffect(()=>{h(n)},[n]);const x=i=>{h(i);const v=new URLSearchParams(j);v.set("tab",i),N(`?${v.toString()}`,{replace:!0})},_={open_rate:{label:"Open rate"}},b=c.useMemo(()=>({"total-subscribers":{color:"hsl(var(--chart-darkblue))",datakey:"value"},"avg-open-rate":{color:"hsl(var(--chart-blue))",datakey:"open_rate"},"avg-click-rate":{color:"hsl(var(--chart-teal))",datakey:"click_rate"}}),[]),{barDomain:C,barTicks:R}=c.useMemo(()=>{if(!s||s.length===0||l==="total-subscribers")return{barDomain:[0,1],barTicks:[0,1]};const i=b[l]?.datakey;if(!i)return{barDomain:[0,1],barTicks:[0,1]};const v=s.map(G=>G[i]).filter(G=>typeof G=="number");if(v.length===0)return{barDomain:[0,1],barTicks:[0,1]};const M=Math.min(...v),P=Math.max(...v),A=Math.floor(M*10)/10,V=Math.ceil(P*10)/10,W=Math.max(0,A),Z=V===W?W+.1:V;return{barDomain:[W,Z],barTicks:[W,Z]}},[s,l,b]);if(o)return e.jsx("div",{className:"-mb-6 flex h-[calc(16vw+132px)] w-full items-start justify-center",children:e.jsx(ee,{})});let F="grid-cols-3";(!k||!u)&&(F="grid-cols-2"),!k&&!u&&(F="grid-cols-1");const ue=l==="avg-open-rate"&&D>C[0]&&D<C[1]||l==="avg-click-rate"&&m>C[0]&&m<C[1],J=l==="avg-open-rate"?D:m;return e.jsxs(Be,{defaultValue:n,variant:"kpis",children:[e.jsxs(Pe,{className:`-mx-6 hidden grid-cols-3 md:!visible md:!grid ${F}`,children:[e.jsx(Y,{className:`${!u&&!k&&"cursor-auto after:hidden"}`,value:"total-subscribers",onClick:()=>{x("total-subscribers")},children:e.jsx(B,{color:b["total-subscribers"].color,"data-testid":"total-subscribers-value",diffDirection:S.direction,diffValue:S.value,label:"Total subscribers",value:T(O)})}),u&&e.jsx(Y,{value:"avg-open-rate",onClick:()=>{x("avg-open-rate")},children:e.jsx(B,{className:t?"opacity-50":"",color:b["avg-open-rate"].color,label:"Avg. open rate",value:w(D)})}),k&&e.jsx(Y,{value:"avg-click-rate",onClick:()=>{x("avg-click-rate")},children:e.jsx(B,{className:t?"opacity-50":"",color:b["avg-click-rate"].color,label:"Avg. click rate",value:w(m)})})]}),e.jsxs(pe,{children:[e.jsx(he,{className:"md:hidden",asChild:!0,children:e.jsxs(Ee,{children:[l==="total-subscribers"&&e.jsx(B,{color:b["total-subscribers"].color,label:"Total subscribers",value:T(O)}),l==="avg-open-rate"&&u&&e.jsx(B,{className:t?"opacity-50":"",color:b["avg-open-rate"].color,label:"Avg. open rate",value:w(D)}),l==="avg-click-rate"&&k&&e.jsx(B,{className:t?"opacity-50":"",color:b["avg-click-rate"].color,label:"Avg. click rate",value:w(m)})]})}),e.jsxs(xe,{align:"end",className:"w-56",children:[e.jsx(I,{onClick:()=>x("total-subscribers"),children:"Total subscribers"}),u&&e.jsx(I,{onClick:()=>x("avg-open-rate"),children:"Avg. open rate"}),k&&e.jsx(I,{onClick:()=>x("avg-click-rate"),children:"Avg. click rate"})]})]}),e.jsxs("div",{className:"my-4 [&_.recharts-cartesian-axis-tick-value]:fill-gray-500",children:[l==="total-subscribers"&&e.jsx(Me,{className:"-mb-3 h-[16vw] max-h-[320px] min-h-[180px] w-full",color:b["total-subscribers"].color,data:f,id:"mrr",range:d}),(l==="avg-open-rate"&&u||l==="avg-click-rate"&&k)&&e.jsx(e.Fragment,{children:t?e.jsx("div",{className:"h-[320px] w-full items-center justify-center",children:e.jsx(ee,{})}):s&&s.length>0?e.jsxs(e.Fragment,{children:[e.jsx(_e,{className:"aspect-auto h-[200px] w-full md:h-[220px] xl:h-[320px]",config:_,children:e.jsxs(Oe,{className:p?"!cursor-pointer":"",data:s,margin:{top:20},onClick:i=>{i.activePayload&&i.activePayload[0].payload.post_id&&N(`/posts/analytics/${i.activePayload[0].payload.post_id}`,{crossApp:!0})},onMouseLeave:()=>g(!1),onMouseMove:i=>{g(!!(i.activePayload&&i.activePayload[0].payload.post_id))},children:[e.jsx("defs",{children:e.jsxs("linearGradient",{id:"barGradient",x1:"0",x2:"0",y1:"0",y2:"1",children:[e.jsx("stop",{offset:"0%",stopColor:b[l].color,stopOpacity:.8}),e.jsx("stop",{offset:"100%",stopColor:b[l].color,stopOpacity:.6})]})}),e.jsx(De,{horizontal:!0,stroke:"hsl(var(--border))",vertical:!1}),e.jsx(Le,{axisLine:{stroke:"hsl(var(--border))",strokeWidth:1},dataKey:"post_id",interval:0,stroke:"hsl(var(--border))",tickFormatter:()=>"",tickLine:!1,tickMargin:10}),e.jsx(Re,{axisLine:!1,domain:C,tickFormatter:i=>w(i),tickLine:!1,ticks:R,width:fe(R,i=>w(i))}),e.jsx(ye,{content:e.jsx(st,{}),cursor:!1,isAnimationActive:!1,position:{y:10}}),ue&&e.jsx(Ce,{label:{value:`${w(J)}`,position:"left",offset:8,fill:"hsl(var(--muted-foreground))"},opacity:.5,stroke:"hsl(var(--muted-foreground))",strokeDasharray:"4 4",y:J}),e.jsx(Te,{activeBar:{fillOpacity:1},dataKey:b[l].datakey,fill:"url(#barGradient)",fillOpacity:.6,isAnimationActive:!1,maxBarSize:32,minPointSize:3,radius:4})]})}),e.jsxs("div",{className:"-mt-4 text-center text-sm text-muted-foreground",children:["Newsletters ",l==="avg-open-rate"?"opens":"clicks"," in this period"]})]}):e.jsx(re,{className:"size-full py-20",title:`No newsletters ${q(d)}`,children:e.jsx(le,{strokeWidth:1.5})})})]})]})},rt=({newsletters:a})=>{const{selectedNewsletterId:s,setSelectedNewsletterId:r}=U(),o=c.useMemo(()=>a?.filter(t=>t.status==="active")||[],[a]);return c.useEffect(()=>{if(o.length>0&&!s){const t=o.find(n=>n.sort_order===0);r(t?t.id:o[0].id)}},[o,s,r]),o.length<=1?null:e.jsxs(Ae,{value:s||"",onValueChange:t=>{r(t)},children:[e.jsxs(Ve,{className:"w-auto",children:[e.jsx(Fe,{className:"mr-2",size:16,strokeWidth:1.5}),e.jsx(We,{placeholder:"Select a newsletter"})]}),e.jsx($e,{align:"end",children:e.jsxs(He,{children:[e.jsx(Ke,{children:"Newsletters"}),o.map(t=>e.jsx(ze,{value:t.id,children:t.name},t.id))]})})]})},lt=(a,s,r=!0)=>{const o=a??30,{startDate:t,endDate:n}=c.useMemo(()=>X(o),[o]),l=c.useMemo(()=>{const p={date_from:K(t),date_to:K(n)};return s&&(p.newsletter_id=s),p},[t,n,s]),h=Ze({searchParams:l,enabled:r});return r?h:{data:void 0,isLoading:!1,error:null,isError:!1,refetch:h.refetch}},nt=(a,s,r,o=!0)=>{const t=a??30,n=s??"date desc",{startDate:l,endDate:h}=c.useMemo(()=>X(t),[t]),p=c.useMemo(()=>{const d={date_from:K(l),date_to:K(h),order:n};return r&&(d.newsletter_id=r),d},[l,h,n,r]),g=et({searchParams:p,enabled:o});return o?g:{data:void 0,isLoading:!1,error:null,isError:!1,refetch:g.refetch}},ot=(a,s=[],r=!0)=>{const o=c.useMemo(()=>{const n={};return a&&(n.newsletter_id=a),s.length>0&&(n.post_ids=s.join(",")),n},[a,s]),t=tt({searchParams:o,enabled:r});return r?t:{data:void 0,isLoading:!1,error:null,isError:!1,refetch:t.refetch}},ie=(a,s,r,o=!0)=>{const t=nt(a,s,r,o),n=c.useMemo(()=>t.data?.stats?t.data.stats.map(p=>p.post_id):[],[t.data]),l=ot(r,n,o&&n.length>0);return{data:c.useMemo(()=>{if(!t.data?.stats)return;const p=t.data.stats,g=l.data?.stats||[],d=new Map;g.forEach(j=>{d.set(j.post_id,j)});const N=p.map(j=>{const y=d.get(j.post_id);return{...j,total_clicks:y?.total_clicks||0,click_rate:y?.click_rate||0}});return{...t.data,stats:N}},[t.data,l.data]),isLoading:t.isLoading,isClicksLoading:l.isLoading,error:t.error||l.error,isError:t.isError||l.isError,refetch:()=>{t.refetch(),l.refetch()}}},ce=Q.memo(({range:a,selectedNewsletterId:s,shouldFetchStats:r,sortBy:o})=>{const t=te(),{data:n,isLoading:l,isClicksLoading:h}=ie(a,o,s||void 0,!!r),{appSettings:p}=z(),{emailTrackClicks:g,emailTrackOpens:d}=p?.analytics||{},N=c.useMemo(()=>n?.stats||[],[n]),j=d&&g?5:d||g?4:3,y=c.useMemo(()=>e.jsx(e.Fragment,{children:e.jsx(H,{className:"last:border-none [&>td]:py-2.5",children:e.jsx(L,{className:"font-medium",colSpan:j,children:e.jsx(be,{className:"mt-5"})})})}),[j]),k=c.useMemo(()=>N.length>0?e.jsx(e.Fragment,{children:N.map(u=>e.jsxs(H,{className:"last:border-none [&>td]:py-2.5",children:[e.jsx(L,{className:"font-medium",children:e.jsx("div",{className:"group/link inline-flex items-center gap-2",children:u.post_id?e.jsx(je,{className:"h-auto whitespace-normal p-0 text-left hover:!underline",title:"View post analytics",variant:"link",onClick:()=>{t(`/posts/analytics/${u.post_id}/`,{crossApp:!0})},children:u.post_title}):e.jsx(e.Fragment,{children:u.post_title})})}),e.jsx(L,{className:"whitespace-nowrap text-sm",children:ae(u.send_date)}),e.jsx(L,{className:"text-right font-mono text-sm",children:T(u.sent_to)}),d&&e.jsxs(L,{className:"text-right font-mono text-sm",children:[e.jsx("span",{className:"group-hover:hidden",children:w(u.open_rate)}),e.jsx("span",{className:"hidden group-hover:!visible group-hover:!block",children:T(u.total_opens)})]}),g&&e.jsx(L,{className:"text-right font-mono text-sm",children:h?e.jsx("span",{className:"inline-block h-4 w-8 animate-pulse rounded bg-gray-200"}):e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"group-hover:hidden",children:w(u.click_rate)}),e.jsx("span",{className:"hidden group-hover:!visible group-hover:!block",children:T(u.total_clicks)})]})})]},u.post_id))}):e.jsx(H,{className:"border-none hover:bg-transparent",children:e.jsx(L,{className:"text-center group-hover:!bg-transparent",colSpan:5,children:e.jsx(re,{className:"size-full py-20",title:`No newsletters ${q(a)}`,children:e.jsx(le,{strokeWidth:1.5})})})}),[N,h,t,g,d,a]);return l||!n?y:k});ce.displayName="NewsletterTableRows";const de=Q.memo(({sortBy:a,setSortBy:s,range:r})=>{const o=c.useMemo(()=>e.jsxs(Ie,{children:[e.jsx(Ye,{children:"Top newsletters"}),e.jsxs(Ue,{children:[" Your best performing newsletters ",q(r)]})]}),[r]),{appSettings:t}=z(),{emailTrackClicks:n,emailTrackOpens:l}=t?.analytics||{};return e.jsx(qe,{children:e.jsxs(H,{children:[e.jsx(E,{className:"min-w-[320px]",variant:"cardhead",children:o}),e.jsx(E,{className:"w-[65px]",children:e.jsx($,{activeSortBy:a,setSortBy:s,sortBy:"date desc",children:"Date"})}),e.jsx(E,{className:"w-[90px] text-right",children:e.jsx($,{activeSortBy:a,setSortBy:s,sortBy:"sent_to desc",children:"Sent"})}),l&&e.jsx(E,{className:"w-[90px] text-right",children:e.jsx($,{activeSortBy:a,setSortBy:s,sortBy:"open_rate desc",children:"Opens"})}),n&&e.jsx(E,{className:"w-[90px] text-right",children:e.jsx($,{activeSortBy:a,setSortBy:s,sortBy:"click_rate desc",children:"Clicks"})})]})})});de.displayName="NewsletterTableHeader";const me=Q.memo(({range:a,selectedNewsletterId:s,shouldFetchStats:r})=>{const[o,t]=c.useState("open_rate desc");return e.jsx(ne,{className:"w-full max-w-[calc(100vw-64px)] overflow-x-auto sidebar:max-w-[calc(100vw-64px-280px)]","data-testid":"top-newsletters-card",children:e.jsx(oe,{children:e.jsxs(Xe,{children:[e.jsx(de,{range:a,setSortBy:t,sortBy:o}),e.jsx(Qe,{children:e.jsx(ce,{range:a,selectedNewsletterId:s,shouldFetchStats:r,sortBy:o})})]})})})});me.displayName="TopNewslettersTable";const Vt=()=>{const{range:a,selectedNewsletterId:s}=U(),[r]=se(),{appSettings:o}=z(),t=r.get("tab")||"total-subscribers",{data:n,isLoading:l}=Je({searchParams:{limit:"50"}}),h=!l&&n&&n.newsletters.length>0&&!!s,{data:p,isLoading:g}=lt(a,s||void 0,h||!1),{data:d,isLoading:N,isClicksLoading:j}=ie(a,"date asc",s||void 0,h||!1),y=c.useMemo(()=>!n?.newsletters||!s?null:n.newsletters.find(m=>m.id===s)||null,[n,s]),k=c.useMemo(()=>{const m=y?.count?.active_members||p?.stats?.[0]?.total||0;let f=0,S=0;if(d?.stats&&d.stats.length>0){const x=d.stats,_=x.reduce((C,R)=>C+(R.open_rate||0),0),b=x.reduce((C,R)=>C+(R.click_rate||0),0);f=_/x.length,S=b/x.length}return{totalSubscribers:m,avgOpenRate:f,avgClickRate:S}},[y,p,d]),u=c.useMemo(()=>{if(!p?.stats?.[0]?.values||p.stats[0].values.length===0){const{startDate:f,endDate:S}=X(a),x=[],_=new Date(f);for(;_<=S;)x.push({date:_.toISOString().split("T")[0],value:0}),_.setDate(_.getDate()+1);return x}const m=p.stats[0].values;if(m.length===1){const f=m[0],S=new Date,x=a,_=new Date(S.getTime()-x*24*60*60*1e3);return[{...f,date:_.toISOString().split("T")[0]},{...f,date:S.toISOString().split("T")[0]}]}return m},[p,a]),O=c.useMemo(()=>d?.stats?d.stats.map(m=>({post_id:m.post_id,post_title:m.post_title,send_date:m.send_date,sent_to:m.sent_to,total_opens:m.total_opens,open_rate:m.open_rate,total_clicks:m.total_clicks||0,click_rate:m.click_rate||0})):[],[d]),D=g||j||N;return o?.newslettersEnabled?e.jsxs(ke,{children:[e.jsx(we,{children:e.jsxs(Ge,{children:[e.jsx(rt,{newsletters:n?.newsletters}),e.jsx(Ne,{})]})}),e.jsx(Se,{isLoading:!1,loadingComponent:e.jsx(e.Fragment,{}),children:e.jsxs(e.Fragment,{children:[e.jsx(ne,{"data-testid":"newsletters-card",children:e.jsx(oe,{children:e.jsx(at,{avgsData:O,initialTab:t,isAvgsLoading:!1,isLoading:D,subscribersData:u,totals:k})})}),e.jsx(me,{range:a,selectedNewsletterId:s,shouldFetchStats:!!h})]})})]}):e.jsx(ge,{to:"/"})};export{Vt as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{m as W,r as u,b as $,j as e,Q as H,R as L,cp as ye,g as Ne,e as Ce,P as Ue,U as Me,A as oe,B as j,n as ae,h as Be,f as X,bB as Pe,F as ie,aO as ce,a0 as de,cH as De,a1 as ue,a2 as _,a3 as Y,a4 as K,H as G,bS as Te,aQ as Fe,a5 as J,a6 as me,V as U,ca as Oe,cb as Re,cd as Ie,cI as ne,a7 as Ee,a8 as Se,u as xe,c2 as Ae,a as $e,J as He,K as Le,M as Ve,N as ze,L as te,E as Qe,c as _e,S as R,aX as Ye,D as Ke,q as Ge,t as Je,v as We,w as Xe,O as qe,$ as Ze,cJ as es,o as ss,s as ls,cE as z,T as ns,bx as ts,by as rs,cK as os,cL as fe,cM as as}from"./index-BYawr8p9.js";import{P as is}from"./tags-BL_N4nn2.js";import{E as cs}from"./edit-profile-DlIPB2km.js";import{T as ds,a as us,b as S,f as Q,c as A}from"./tabs-C2sFfNcp.js";import{a as ms}from"./settings-C6ZUZQe4.js";import{U as xs}from"./lucide-react-DKlmxVQI.js";import{C as fs}from"./copy-BFuV16bY.js";import"./at-sign-CqQzllfI.js";import"./index-Kji6JKl7.js";import"./wallet-cards-KaTkgqvi.js";import"./a-large-small-CKZJgscl.js";import"./message-square-text-CaMVBVPr.js";import"./hash-CdH0ikFp.js";import"./inbox-Bd0uf1Ez.js";import"./minus-2XwCoFJV.js";import"./square-BCNGSZhW.js";import"./user-round-check-BjHbfXKY.js";import"./repeat-COP-3g8d.js";import"./reply-JE8tmvOn.js";import"./sprout-BW9HFVU8.js";import"./trash-BglGemAb.js";function hs(s){return typeof s.name=="string"?s.name:typeof s.preferredUsername=="string"?s.preferredUsername:typeof s.preferredUsername=="object"&&s.preferredUsername!==null&&"@value"in s.preferredUsername&&typeof s.preferredUsername["@value"]=="string"?s.preferredUsername["@value"]:"Unknown"}const he=({noResultsMessage:s,actors:o,isLoading:n,fetchNextPage:c,hasNextPage:x,isFetchingNextPage:d})=>{const i=W("index","me"),{data:r}=i,t=u.useRef(null),a=u.useRef(null);u.useEffect(()=>(t.current&&t.current.disconnect(),t.current=new IntersectionObserver(l=>{l[0].isIntersecting&&x&&!d&&c()}),a.current&&t.current.observe(a.current),()=>{t.current&&t.current.disconnect()}),[x,d,c]);const m=$();return e.jsxs("div",{className:"pt-3","data-testid":"actor-list",children:[x===!1&&o.length===0?e.jsxs(H,{children:[e.jsx(L,{children:e.jsx(ye,{})}),s]}):e.jsx("div",{className:"flex flex-col",children:o.map(({actor:l,isFollowing:h,blockedByMe:b,domainBlockedByMe:k})=>{const w=l.handle||Ne(l),y=w===r?.handle;return e.jsx(Ce.Fragment,{children:e.jsx(Ue,{actor:l,align:"center",isCurrentUser:y,side:"left",children:e.jsx("div",{children:e.jsxs(Me,{"data-testid":"actor-item",onClick:()=>{Be(l,m)},children:[e.jsx(oe,{author:l}),e.jsx("div",{children:e.jsxs("div",{className:"text-gray-600 break-anywhere",children:[e.jsx("span",{className:"mr-1 line-clamp-1 font-bold text-black dark:text-white",children:hs(l)}),e.jsx("div",{className:"line-clamp-1 text-sm",children:w})]})}),b||k?e.jsx(j,{className:"pointer-events-none ml-auto min-w-[90px]",variant:"destructive",children:"Blocked"}):y?null:e.jsx(ae,{className:"ml-auto","data-testid":"follow-button",following:h,handle:w,type:"secondary"})]},l.id)})})},l.id)})}),e.jsx("div",{ref:a,className:"h-1"}),(d||n)&&e.jsx("div",{className:"mt-6 flex flex-col items-center justify-center space-y-4 text-center",children:e.jsx(X,{size:"md"})})]})},ps=({posts:s,fetchNextPage:o,hasNextPage:n,isFetchingNextPage:c,isLoading:x})=>{const d=u.useRef(null),i=u.useRef(null),r=u.useRef(null),t=Math.max(0,Math.floor(s.length*.75)-1);u.useEffect(()=>(d.current&&d.current.disconnect(),d.current=new IntersectionObserver(m=>{m[0].isIntersecting&&n&&!c&&o()}),i.current&&d.current.observe(i.current),r.current&&d.current.observe(r.current),()=>{d.current&&d.current.disconnect()}),[n,c,o]);const a=$();return e.jsxs(e.Fragment,{children:[n===!1&&s.length===0&&e.jsxs(H,{children:[e.jsx(L,{children:e.jsx(Pe,{})}),"You haven't liked anything yet."]}),e.jsxs("ul",{className:"mx-auto flex max-w-[640px] flex-col","data-testid":"profile-likes-list",children:[s.map((m,l)=>e.jsxs("li",{"data-testid":"profile-like-item","data-test-view-article":!0,children:[e.jsx(ie,{actor:m.actor,allowDelete:m.object.authored,commentCount:m.object.replyCount,isLoading:x,layout:"feed",likeCount:m.object.likeCount,object:m.object,repostCount:m.object.repostCount,type:m.type,onClick:()=>{m.object.type==="Note"?a(`/notes/${encodeURIComponent(m.object.id)}`):m.object.type==="Article"&&a(`/reader/${encodeURIComponent(m.object.id)}`)}}),l<s.length-1&&e.jsx(ce,{}),l===t&&e.jsx("div",{ref:i,className:"h-1"})]},`likes-${m.id}`)),c&&e.jsx("li",{className:"flex flex-col items-center justify-center space-y-4 text-center",children:e.jsx(X,{size:"md"})})]}),e.jsx("div",{ref:r,className:"h-1"})]})},js=({posts:s,fetchNextPage:o,hasNextPage:n,isFetchingNextPage:c,isLoading:x,noResultsMessage:d})=>{const i=u.useRef(null),r=u.useRef(null),t=u.useRef(null),a=Math.max(0,Math.floor(s.length*.75)-1);u.useEffect(()=>(i.current&&i.current.disconnect(),i.current=new IntersectionObserver(l=>{l[0].isIntersecting&&n&&!c&&o()}),r.current&&i.current.observe(r.current),t.current&&i.current.observe(t.current),()=>{i.current&&i.current.disconnect()}),[n,c,o]);const m=$();return e.jsxs(e.Fragment,{children:[n===!1&&s.length===0&&e.jsxs(H,{children:[e.jsx(L,{children:e.jsx(is,{})}),d]}),e.jsxs("ul",{className:"mx-auto flex max-w-[640px] flex-col","data-testid":"profile-posts-list",children:[s.map((l,h)=>e.jsxs("li",{"data-testid":"profile-post-item","data-test-view-article":!0,children:[e.jsx(ie,{actor:l.actor,allowDelete:l.object.authored,commentCount:l.object.replyCount,isLoading:x,layout:"feed",likeCount:l.object.likeCount,object:l.object,repostCount:l.object.repostCount,type:l.type,onClick:()=>{l.object.type==="Note"?m(`/notes/${encodeURIComponent(l.object.id)}`):l.object.type==="Article"&&m(`/reader/${encodeURIComponent(l.object.id)}`)}}),h<s.length-1&&e.jsx(ce,{}),h===a&&e.jsx("div",{ref:r,className:"h-1"})]},`posts-${l.id}`)),c&&e.jsx("li",{className:"flex flex-col items-center justify-center space-y-4 text-center",children:e.jsx(X,{size:"md"})})]}),e.jsx("div",{ref:t,className:"h-1"})]})},pe=({handle:s,isUserBlocked:o,isDomainBlocked:n,onUnblockUser:c,onUnblockDomain:x,trigger:d,onUnblockComplete:i,isOpen:r,onOpenChange:t})=>{const[a,m]=u.useState(!1),[l,h]=u.useState(()=>{const p=o&&n,N=o&&!n,F=!o&&n;let g="idle";return p?g="dual":N?g="userOnly":F&&(g="domainOnly"),{mode:g,userUnblocked:!1,domainUnblocked:!1}}),b=r!==void 0,k=b?r:a,[w,y]=u.useState(!1),M=u.useCallback(()=>{const p=o&&n,N=o&&!n,F=!o&&n;let g="idle";p?g="dual":N?g="userOnly":F&&(g="domainOnly"),h(C=>({...C,mode:g,userUnblocked:!1,domainUnblocked:!1}))},[o,n]);u.useEffect(()=>{k&&!w?(M(),y(!0)):k||y(!1)},[k,w,M]);const D=()=>{b?t?.(!0):m(!0)},f=p=>{p||(b?t?.(!1):m(!1))},I=async()=>{await c(),h(p=>({...p,userUnblocked:!0})),(l.mode!=="dual"||l.domainUnblocked)&&(f(!1),i?.()),U.success("User unblocked")},E=async()=>{await x(),h(p=>({...p,domainUnblocked:!0})),(l.mode!=="dual"||l.userUnblocked)&&(f(!1),i?.()),U.success("Domain unblocked")},T=s.split("@").filter(Boolean)[1],B=()=>e.jsxs(e.Fragment,{children:[e.jsxs(_,{children:[e.jsx(Y,{className:"mb-1 flex flex-col gap-1",children:"Unblock"}),e.jsx(K,{className:"!mt-4",asChild:!0,children:e.jsxs("div",{className:"flex flex-col rounded-md border",children:[e.jsxs("div",{className:"flex justify-between gap-6 p-5",children:[e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx(G,{children:"Unblock user"}),e.jsxs("p",{children:[e.jsx("span",{className:"font-semibold text-black",children:s})," will be able to follow you and engage with your public posts."]})]}),e.jsxs(j,{className:`gap-1 ${l.userUnblocked?"pointer-events-none border-green bg-green text-white hover:bg-green hover:text-white":"text-red hover:text-red-400"}`,variant:"outline",onClick:I,children:[e.jsx(Te,{}),l.userUnblocked?"User unblocked":"Unblock user"]})]}),e.jsx("div",{className:"border-t"}),e.jsxs("div",{className:"flex justify-between gap-6 p-5",children:[e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx(G,{children:"Unblock domain"}),e.jsxs("p",{children:["Users from ",e.jsx("span",{className:"font-semibold text-black",children:T})," will be able to follow you and engage with your public posts."]})]}),e.jsxs(j,{className:`gap-1 ${l.domainUnblocked?"pointer-events-none border-green bg-green text-white hover:bg-green hover:text-white":"text-red hover:text-red-400"}`,variant:"outline",onClick:E,children:[e.jsx(Fe,{}),l.domainUnblocked?"Domain unblocked":"Unblock domain"]})]})]})})]}),e.jsx(J,{children:e.jsx(j,{onClick:()=>f(!1),children:"OK"})})]}),P=()=>{const p=l.mode==="userOnly";return e.jsxs(e.Fragment,{children:[e.jsxs(_,{children:[e.jsx(Y,{className:"mb-1 flex flex-col gap-1",children:p?"Unblock this user?":"Unblock this domain?"}),e.jsx(K,{children:p?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"font-semibold text-black",children:s})," will be able to follow you and engage with your public posts."]}):e.jsxs(e.Fragment,{children:["Users from ",e.jsx("span",{className:"font-semibold text-black",children:T})," will be able to follow you and engage with your public posts."]})})]}),e.jsxs(J,{children:[e.jsx(me,{children:"Cancel"}),e.jsx(j,{onClick:p?I:E,children:"Unblock"})]})]})};return e.jsxs(de,{open:k,onOpenChange:f,children:[d&&e.jsx(De,{asChild:!0,onClick:D,children:d}),e.jsx(ue,{className:`${l.mode==="dual"&&"max-w-[600px]"}`,children:l.mode==="dual"?B():P()})]})},bs=({account:s,children:o,onCopyHandle:n,onBlockAccount:c,onBlockDomain:x,disabled:d=!1,isBlocked:i=!1,isDomainBlocked:r=!1})=>{const[t,a]=u.useState(null),[m,l]=u.useState(!1),h=f=>{f.stopPropagation(),n()},b=f=>{f.stopPropagation(),c()},k=f=>{f.stopPropagation(),x()},w=s?.handle,y=w?.split("@").filter(Boolean)[1],M=()=>e.jsx(de,{open:m,onOpenChange:l,children:e.jsxs(ue,{onClick:f=>f.stopPropagation(),children:[e.jsxs(_,{children:[e.jsx(Y,{className:"mb-1 flex flex-col gap-1",children:t==="user"?"Block this user?":"Block this domain?"}),e.jsx(K,{children:t==="user"?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"font-semibold text-black",children:w})," will be able to see your public posts, but will no longer be able follow you or interact with your content on the social web."]}):e.jsxs(e.Fragment,{children:["All users from ",e.jsx("span",{className:"font-semibold text-black",children:y})," will be able to see your public posts, but won't be able to follow you or interact with your content."]})})]}),e.jsxs(J,{children:[t!=="domain"&&e.jsx(j,{className:"-ml-3 mr-auto hover:bg-transparent hover:opacity-80",variant:"ghost",onClick:f=>{f.stopPropagation(),a("domain")},children:"Block domain instead"}),e.jsx(me,{onClick:f=>f.stopPropagation(),children:"Cancel"}),e.jsx(Ee,{className:Se({variant:"destructive"}),onClick:t==="user"?b:k,children:"Block"})]})]})}),D=()=>s&&e.jsx(pe,{handle:s.handle,isDomainBlocked:s.domainBlockedByMe,isOpen:m,isUserBlocked:s.blockedByMe,onOpenChange:l,onUnblockDomain:x,onUnblockUser:c});return e.jsxs(e.Fragment,{children:[e.jsxs(Oe,{children:[e.jsx(Re,{disabled:d,asChild:!0,onClick:f=>f.stopPropagation(),children:o}),e.jsx(Ie,{align:"end",className:"p-2",children:e.jsxs("div",{className:"flex w-48 flex-col",children:[e.jsx(ne,{asChild:!0,children:e.jsx(j,{className:"justify-start",variant:"ghost",onClick:h,children:"Copy handle"})}),e.jsx(ne,{asChild:!0,children:e.jsx(j,{className:"justify-start text-red hover:bg-red/5 hover:text-red",variant:"ghost",onClick:f=>{f.stopPropagation(),!i&&!r&&a("user"),l(!0)},children:i?"Unblock user":r?"Unblock domain":"Block user"})})]})})]}),i||r?D():M()]})},gs=({account:s,onUnblock:o,onDomainUnblock:n,className:c=""})=>{const[x,d]=u.useState(!1),i=e.jsx(j,{className:`min-w-[90px] ${c}`,variant:"destructive",onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),children:x?"Unblock":"Blocked"});return e.jsx(pe,{handle:s.handle,isDomainBlocked:s.domainBlockedByMe,isUserBlocked:s.blockedByMe,trigger:i,onUnblockDomain:n,onUnblockUser:o})},re=()=>{},ks=({account:s,customFields:o,isLoadingAccount:n,postsTab:c,likesTab:x,followingTab:d,followersTab:i})=>{const r=xe(),t=Ae(),a=$(),{canGoBack:m}=$e(),l=r.handle?`/profile/${r.handle}`:"/profile",h=!r.handle,b=r.handle?r.tab||"":t.pathname.split("/").pop()||"",k=u.useMemo(()=>h?["likes","following","followers"]:["following","followers"],[h]),w=k.includes(b)?b:"posts",y=He("index"),M=Le("index"),D=Ve("index"),f=ze("index"),I=W("index","me"),{data:E}=r.handle?I:{data:void 0},T=r.handle===E?.handle||!r.handle,B=s?.blockedByMe,P=s?.domainBlockedByMe,[p,N]=u.useState(!1),[F,g]=u.useState(!1),C=u.useRef(null);u.useEffect(()=>()=>{C.current&&window.clearTimeout(C.current)},[]);const q=()=>{B?M.mutate(s):(y.mutate(s),U.success("User blocked")),N(!1)},Z=()=>{P?f.mutate({url:s.apId,handle:s.handle}):(D.mutate({url:s.apId,handle:s.handle}),U.success("Domain blocked")),N(!1)},ee=async()=>{if(!s?.handle||!navigator?.clipboard?.writeText){U.error("Unable to copy handle");return}try{await navigator.clipboard.writeText(s.handle),g(!0),U.success("Handle copied"),C.current&&window.clearTimeout(C.current),C.current=window.setTimeout(()=>g(!1),2e3)}catch{U.error("Failed to copy handle"),g(!1)}},[O,je]=u.useState(!1),[be,se]=u.useState(!1),ge=()=>{je(!O)},V=u.useRef(null),[le,ke]=u.useState(!1);u.useEffect(()=>{V.current&&ke(V.current.scrollHeight>160)},[O,s?.bio,o,n]),u.useEffect(()=>{b&&(k.includes(b)||a(l,{replace:!0}))},[k,l,a,b]);const we=v=>v==="posts"?l:`${l}/${v}`,ve=v=>{v!==w&&a(we(v),{replace:!0})};return!n&&!s?e.jsx(te,{children:e.jsx("div",{className:"mx-auto mt-4 flex w-full max-w-[620px] flex-col items-center [&_svg]:translate-x-px",children:e.jsxs(Qe,{children:[e.jsx(_e,{children:e.jsx(xs,{})}),e.jsx("div",{children:"Profile not found"})]})})}):e.jsx(te,{children:e.jsx("div",{className:"z-0 mx-[max(-4vw,-32px)] -mt-9 flex flex-col items-center pb-16",children:e.jsx("div",{className:"mx-auto w-full",children:e.jsxs(e.Fragment,{children:[s?.bannerImageUrl?e.jsx("div",{className:"h-[15vw] min-h-[200px] w-full overflow-hidden bg-gradient-to-tr from-gray-200 to-gray-100",children:e.jsx("img",{alt:s?.name,className:"size-full object-cover",referrerPolicy:"no-referrer",src:s?.bannerImageUrl})}):e.jsx("div",{className:"h-[max(8vw,132px)] w-full overflow-hidden bg-gradient-to-tr from-white to-white dark:from-black dark:to-black"}),e.jsxs("div",{className:`mx-auto max-w-[620px] px-6 ${!s?.bannerImageUrl&&!m?"-mt-8":"-mt-12"}`,children:[e.jsxs("div",{className:"flex items-end justify-between",children:[e.jsx("div",{className:"-ml-2 rounded-full bg-white p-1 dark:bg-black",children:n?e.jsx(R,{className:"size-[92px] rounded-full"}):e.jsx(oe,{author:{icon:{url:s?.avatarUrl},name:s?.name,handle:s?.handle},size:"lg"})}),!T&&!n&&e.jsxs("div",{className:"flex gap-2",children:[B||P?e.jsx(gs,{account:s,onDomainUnblock:Z,onUnblock:q}):e.jsx(ae,{following:s?.followedByMe,handle:s?.handle,type:"primary",onFollow:re,onUnfollow:re}),e.jsx(bs,{account:s,isBlocked:B,isDomainBlocked:P,onBlockAccount:q,onBlockDomain:Z,onCopyHandle:ee,children:e.jsx(j,{"aria-label":"Open profile menu",variant:"outline",children:e.jsx(Ye,{})})})]}),T&&!n&&e.jsxs(Ke,{open:be,onOpenChange:se,children:[e.jsx(Ge,{children:e.jsx(ms,{children:e.jsx(j,{variant:"secondary",children:"Edit profile"})})}),e.jsxs(Je,{className:"w-full max-w-[520px]",onOpenAutoFocus:v=>v.preventDefault(),children:[e.jsx(We,{children:e.jsx(Xe,{children:"Profile settings"})}),s&&e.jsx(cs,{account:s,setIsEditingProfile:se})]})]})]}),e.jsx(qe,{className:"mt-4 truncate break-anywhere",children:n?e.jsx(R,{className:"w-32"}):s?.name}),e.jsxs("div",{className:"mb-4 flex items-center gap-2",children:[e.jsx("a",{className:"inline-flex max-w-full truncate text-[1.5rem] text-gray-800 hover:text-gray-900 dark:text-gray-600 dark:hover:text-gray-500",href:s?.url,rel:"noopener noreferrer",target:"_blank",children:e.jsx("span",{className:"truncate",children:n?e.jsx(R,{className:"w-full max-w-56"}):s?.handle})}),!n&&e.jsx(j,{className:"-ml-1.5 size-6 p-0 text-gray-800 hover:text-gray-900 dark:text-gray-700 dark:hover:text-gray-600",title:"Copy handle",variant:"link",onClick:ee,children:F?e.jsx(Ze,{size:16}):e.jsx(fs,{size:16})}),s?.followsMe&&!n&&e.jsx(es,{className:"mt-px whitespace-nowrap",variant:"secondary",children:"Follows you"})]}),(s?.bio||o?.length>0)&&e.jsxs("div",{ref:V,className:`ap-profile-content relative text-[1.5rem] break-anywhere [&>p]:mb-3 ${O?"max-h-none pb-7":"max-h-[160px] overflow-hidden"} relative`,children:[n?e.jsxs(e.Fragment,{children:[e.jsx(R,{}),e.jsx(R,{className:"w-full max-w-48"})]}):e.jsx("div",{dangerouslySetInnerHTML:{__html:ss(ls(s?.bio??"",["a","br"]))}}),o?.map(v=>e.jsxs("span",{className:"mt-3 line-clamp-1 flex flex-col text-[1.5rem]",children:[e.jsx("span",{className:"text-xs font-semibold",children:v.name}),e.jsx("span",{dangerouslySetInnerHTML:{__html:v.value},className:"ap-profile-content truncate"})]})),!O&&le&&e.jsx("div",{className:"absolute inset-x-0 bottom-0 h-16 bg-gradient-to-t from-white via-white/100 via-60% to-transparent dark:from-black dark:via-black/100"}),le&&e.jsx(j,{className:"absolute bottom-0 h-auto p-0 text-md",variant:"link",onClick:ge,children:O?"Show less":"Show all"})]}),e.jsxs(ds,{className:"mt-5",value:w,variant:"underline",onValueChange:v=>ve(v),children:[e.jsxs(us,{children:[e.jsx(S,{value:"posts",children:"Posts"}),h&&e.jsxs(S,{value:"likes",children:["Likes",e.jsx(Q,{children:z(s?.likedCount||0)})]}),e.jsxs(S,{value:"following",children:["Following",e.jsx(Q,{children:z(s?.followingCount||0)})]}),e.jsxs(S,{value:"followers",children:["Followers",e.jsx(Q,{children:z(s?.followerCount||0)})]})]}),e.jsx(A,{value:"posts",children:(B||P)&&!p?e.jsxs(H,{children:[e.jsx(L,{children:e.jsx(ns,{})}),e.jsxs("div",{className:"mt-2 flex flex-col items-center gap-0.5",children:[e.jsxs(G,{children:[s.name," is blocked"]}),e.jsx("p",{children:"You can view the posts, but it won't unblock the user."}),e.jsx(j,{className:"mt-4",variant:"secondary",onClick:()=>N(!0),children:"View posts"})]})]}):c}),h&&e.jsx(A,{value:"likes",children:x}),e.jsx(A,{value:"following",children:d}),e.jsx(A,{value:"followers",children:i})]},r.handle||s?.handle||"current-user")]})]})})})})},ws=({handle:s})=>{const{postsByAccountQuery:o}=os(s||"me",{enabled:!0}),{data:n,fetchNextPage:c,hasNextPage:x,isFetchingNextPage:d,isLoading:i}=o,r=n?.pages.flatMap(t=>t.posts)??Array.from({length:5},(t,a)=>({id:`placeholder-${a}`,object:{}}));return e.jsx(js,{fetchNextPage:c,hasNextPage:x,isFetchingNextPage:d,isLoading:i,noResultsMessage:s?`${s} hasn't posted anything yet`:"You haven't posted anything yet.",posts:r})},vs=()=>{const{postsLikedByAccountQuery:s}=as({enabled:!0}),{data:o,fetchNextPage:n,hasNextPage:c,isFetchingNextPage:x,isLoading:d}=s,i=o?.pages.flatMap(r=>r.posts)??Array.from({length:5},(r,t)=>({id:`placeholder-${t}`,object:{}}));return e.jsx(ps,{fetchNextPage:n,hasNextPage:c,isFetchingNextPage:x,isLoading:d,posts:i})},ys=({handle:s})=>{const o=fe(s===""?"me":s,"following"),{data:n,fetchNextPage:c,hasNextPage:x,isFetchingNextPage:d,isLoading:i}=o,r=n?.pages.flatMap(t=>"following"in t?t.following:"accounts"in t?t.accounts.map(a=>({actor:{id:a.id,name:a.name,handle:a.handle,icon:{url:a.avatarUrl}},isFollowing:a.isFollowing,blockedByMe:a.blockedByMe,domainBlockedByMe:a.domainBlockedByMe})):[])??[];return e.jsx(he,{actors:r,fetchNextPage:c,hasNextPage:x,isFetchingNextPage:d,isLoading:i,noResultsMessage:`${s||"You"} have no following`})},Ns=({handle:s})=>{const o=fe(s===""?"me":s,"followers"),{data:n,fetchNextPage:c,hasNextPage:x,isFetchingNextPage:d,isLoading:i}=o,r=n?.pages.flatMap(t=>"followers"in t?t.followers:"accounts"in t?t.accounts.map(a=>({actor:{id:a.id,name:a.name,handle:a.handle,icon:{url:a.avatarUrl}},isFollowing:a.isFollowing})):[])??[];return e.jsx(he,{actors:r,fetchNextPage:c,hasNextPage:x,isFetchingNextPage:d,isLoading:i,noResultsMessage:`${s||"You"} have no followers yet`})},Ys=({})=>{const s=xe(),{data:o,isLoading:n,error:c,refetch:x}=W("index",s.handle||"me");if(u.useEffect(()=>{x()},[s.handle,x]),c&&ts(c)&&c.statusCode!==404)return e.jsx(rs,{errorCode:c.code,statusCode:c.statusCode});const d=Object.keys(o?.customFields||{}).map(m=>({name:m,value:o.customFields[m]}))||[],i=e.jsx(ws,{handle:s.handle||""}),r=e.jsx(vs,{}),t=e.jsx(ys,{handle:s.handle||""}),a=e.jsx(Ns,{handle:s.handle||""});return e.jsx(ks,{account:o,customFields:d,followersTab:a,followingTab:t,isLoadingAccount:n,likesTab:r,postsTab:i})};export{Ys as default};
|
|
1
|
+
import{m as W,r as u,b as $,j as e,Q as H,R as L,cp as ye,g as Ne,e as Ce,P as Ue,U as Me,A as oe,B as j,n as ae,h as Be,f as X,bB as Pe,F as ie,aO as ce,a0 as de,cH as De,a1 as ue,a2 as _,a3 as Y,a4 as K,H as G,bS as Te,aQ as Fe,a5 as J,a6 as me,V as U,ca as Oe,cb as Re,cd as Ie,cI as ne,a7 as Ee,a8 as Se,u as xe,c2 as Ae,a as $e,J as He,K as Le,M as Ve,N as ze,L as te,E as Qe,c as _e,S as R,aX as Ye,D as Ke,q as Ge,t as Je,v as We,w as Xe,O as qe,$ as Ze,cJ as es,o as ss,s as ls,cE as z,T as ns,bx as ts,by as rs,cK as os,cL as fe,cM as as}from"./index-CJU9a2PB.js";import{P as is}from"./tags-DXDZbfxp.js";import{E as cs}from"./edit-profile-BjtDkDAq.js";import{T as ds,a as us,b as S,f as Q,c as A}from"./tabs-BwQ-i6MY.js";import{a as ms}from"./settings-QtZ6a2TL.js";import{U as xs}from"./lucide-react-B7UnD_Dp.js";import{C as fs}from"./copy-DWiB-781.js";import"./at-sign-CYnGzOFc.js";import"./index-6syrC9X1.js";import"./wallet-cards-Do7nPf3f.js";import"./a-large-small-BPPu_Iy7.js";import"./message-square-text-CS3iRuPc.js";import"./hash-p9dv0yuc.js";import"./inbox-CRoP9sy5.js";import"./minus-emzwh6hq.js";import"./square-DT1uWkxs.js";import"./user-round-check-D3ihrrKL.js";import"./repeat-ms5ocvE0.js";import"./reply-BvO85IDn.js";import"./sprout-C2R5CbXV.js";import"./trash-CZ3EXwTL.js";function hs(s){return typeof s.name=="string"?s.name:typeof s.preferredUsername=="string"?s.preferredUsername:typeof s.preferredUsername=="object"&&s.preferredUsername!==null&&"@value"in s.preferredUsername&&typeof s.preferredUsername["@value"]=="string"?s.preferredUsername["@value"]:"Unknown"}const he=({noResultsMessage:s,actors:o,isLoading:n,fetchNextPage:c,hasNextPage:x,isFetchingNextPage:d})=>{const i=W("index","me"),{data:r}=i,t=u.useRef(null),a=u.useRef(null);u.useEffect(()=>(t.current&&t.current.disconnect(),t.current=new IntersectionObserver(l=>{l[0].isIntersecting&&x&&!d&&c()}),a.current&&t.current.observe(a.current),()=>{t.current&&t.current.disconnect()}),[x,d,c]);const m=$();return e.jsxs("div",{className:"pt-3","data-testid":"actor-list",children:[x===!1&&o.length===0?e.jsxs(H,{children:[e.jsx(L,{children:e.jsx(ye,{})}),s]}):e.jsx("div",{className:"flex flex-col",children:o.map(({actor:l,isFollowing:h,blockedByMe:b,domainBlockedByMe:k})=>{const w=l.handle||Ne(l),y=w===r?.handle;return e.jsx(Ce.Fragment,{children:e.jsx(Ue,{actor:l,align:"center",isCurrentUser:y,side:"left",children:e.jsx("div",{children:e.jsxs(Me,{"data-testid":"actor-item",onClick:()=>{Be(l,m)},children:[e.jsx(oe,{author:l}),e.jsx("div",{children:e.jsxs("div",{className:"text-gray-600 break-anywhere",children:[e.jsx("span",{className:"mr-1 line-clamp-1 font-bold text-black dark:text-white",children:hs(l)}),e.jsx("div",{className:"line-clamp-1 text-sm",children:w})]})}),b||k?e.jsx(j,{className:"pointer-events-none ml-auto min-w-[90px]",variant:"destructive",children:"Blocked"}):y?null:e.jsx(ae,{className:"ml-auto","data-testid":"follow-button",following:h,handle:w,type:"secondary"})]},l.id)})})},l.id)})}),e.jsx("div",{ref:a,className:"h-1"}),(d||n)&&e.jsx("div",{className:"mt-6 flex flex-col items-center justify-center space-y-4 text-center",children:e.jsx(X,{size:"md"})})]})},ps=({posts:s,fetchNextPage:o,hasNextPage:n,isFetchingNextPage:c,isLoading:x})=>{const d=u.useRef(null),i=u.useRef(null),r=u.useRef(null),t=Math.max(0,Math.floor(s.length*.75)-1);u.useEffect(()=>(d.current&&d.current.disconnect(),d.current=new IntersectionObserver(m=>{m[0].isIntersecting&&n&&!c&&o()}),i.current&&d.current.observe(i.current),r.current&&d.current.observe(r.current),()=>{d.current&&d.current.disconnect()}),[n,c,o]);const a=$();return e.jsxs(e.Fragment,{children:[n===!1&&s.length===0&&e.jsxs(H,{children:[e.jsx(L,{children:e.jsx(Pe,{})}),"You haven't liked anything yet."]}),e.jsxs("ul",{className:"mx-auto flex max-w-[640px] flex-col","data-testid":"profile-likes-list",children:[s.map((m,l)=>e.jsxs("li",{"data-testid":"profile-like-item","data-test-view-article":!0,children:[e.jsx(ie,{actor:m.actor,allowDelete:m.object.authored,commentCount:m.object.replyCount,isLoading:x,layout:"feed",likeCount:m.object.likeCount,object:m.object,repostCount:m.object.repostCount,type:m.type,onClick:()=>{m.object.type==="Note"?a(`/notes/${encodeURIComponent(m.object.id)}`):m.object.type==="Article"&&a(`/reader/${encodeURIComponent(m.object.id)}`)}}),l<s.length-1&&e.jsx(ce,{}),l===t&&e.jsx("div",{ref:i,className:"h-1"})]},`likes-${m.id}`)),c&&e.jsx("li",{className:"flex flex-col items-center justify-center space-y-4 text-center",children:e.jsx(X,{size:"md"})})]}),e.jsx("div",{ref:r,className:"h-1"})]})},js=({posts:s,fetchNextPage:o,hasNextPage:n,isFetchingNextPage:c,isLoading:x,noResultsMessage:d})=>{const i=u.useRef(null),r=u.useRef(null),t=u.useRef(null),a=Math.max(0,Math.floor(s.length*.75)-1);u.useEffect(()=>(i.current&&i.current.disconnect(),i.current=new IntersectionObserver(l=>{l[0].isIntersecting&&n&&!c&&o()}),r.current&&i.current.observe(r.current),t.current&&i.current.observe(t.current),()=>{i.current&&i.current.disconnect()}),[n,c,o]);const m=$();return e.jsxs(e.Fragment,{children:[n===!1&&s.length===0&&e.jsxs(H,{children:[e.jsx(L,{children:e.jsx(is,{})}),d]}),e.jsxs("ul",{className:"mx-auto flex max-w-[640px] flex-col","data-testid":"profile-posts-list",children:[s.map((l,h)=>e.jsxs("li",{"data-testid":"profile-post-item","data-test-view-article":!0,children:[e.jsx(ie,{actor:l.actor,allowDelete:l.object.authored,commentCount:l.object.replyCount,isLoading:x,layout:"feed",likeCount:l.object.likeCount,object:l.object,repostCount:l.object.repostCount,type:l.type,onClick:()=>{l.object.type==="Note"?m(`/notes/${encodeURIComponent(l.object.id)}`):l.object.type==="Article"&&m(`/reader/${encodeURIComponent(l.object.id)}`)}}),h<s.length-1&&e.jsx(ce,{}),h===a&&e.jsx("div",{ref:r,className:"h-1"})]},`posts-${l.id}`)),c&&e.jsx("li",{className:"flex flex-col items-center justify-center space-y-4 text-center",children:e.jsx(X,{size:"md"})})]}),e.jsx("div",{ref:t,className:"h-1"})]})},pe=({handle:s,isUserBlocked:o,isDomainBlocked:n,onUnblockUser:c,onUnblockDomain:x,trigger:d,onUnblockComplete:i,isOpen:r,onOpenChange:t})=>{const[a,m]=u.useState(!1),[l,h]=u.useState(()=>{const p=o&&n,N=o&&!n,F=!o&&n;let g="idle";return p?g="dual":N?g="userOnly":F&&(g="domainOnly"),{mode:g,userUnblocked:!1,domainUnblocked:!1}}),b=r!==void 0,k=b?r:a,[w,y]=u.useState(!1),M=u.useCallback(()=>{const p=o&&n,N=o&&!n,F=!o&&n;let g="idle";p?g="dual":N?g="userOnly":F&&(g="domainOnly"),h(C=>({...C,mode:g,userUnblocked:!1,domainUnblocked:!1}))},[o,n]);u.useEffect(()=>{k&&!w?(M(),y(!0)):k||y(!1)},[k,w,M]);const D=()=>{b?t?.(!0):m(!0)},f=p=>{p||(b?t?.(!1):m(!1))},I=async()=>{await c(),h(p=>({...p,userUnblocked:!0})),(l.mode!=="dual"||l.domainUnblocked)&&(f(!1),i?.()),U.success("User unblocked")},E=async()=>{await x(),h(p=>({...p,domainUnblocked:!0})),(l.mode!=="dual"||l.userUnblocked)&&(f(!1),i?.()),U.success("Domain unblocked")},T=s.split("@").filter(Boolean)[1],B=()=>e.jsxs(e.Fragment,{children:[e.jsxs(_,{children:[e.jsx(Y,{className:"mb-1 flex flex-col gap-1",children:"Unblock"}),e.jsx(K,{className:"!mt-4",asChild:!0,children:e.jsxs("div",{className:"flex flex-col rounded-md border",children:[e.jsxs("div",{className:"flex justify-between gap-6 p-5",children:[e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx(G,{children:"Unblock user"}),e.jsxs("p",{children:[e.jsx("span",{className:"font-semibold text-black",children:s})," will be able to follow you and engage with your public posts."]})]}),e.jsxs(j,{className:`gap-1 ${l.userUnblocked?"pointer-events-none border-green bg-green text-white hover:bg-green hover:text-white":"text-red hover:text-red-400"}`,variant:"outline",onClick:I,children:[e.jsx(Te,{}),l.userUnblocked?"User unblocked":"Unblock user"]})]}),e.jsx("div",{className:"border-t"}),e.jsxs("div",{className:"flex justify-between gap-6 p-5",children:[e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx(G,{children:"Unblock domain"}),e.jsxs("p",{children:["Users from ",e.jsx("span",{className:"font-semibold text-black",children:T})," will be able to follow you and engage with your public posts."]})]}),e.jsxs(j,{className:`gap-1 ${l.domainUnblocked?"pointer-events-none border-green bg-green text-white hover:bg-green hover:text-white":"text-red hover:text-red-400"}`,variant:"outline",onClick:E,children:[e.jsx(Fe,{}),l.domainUnblocked?"Domain unblocked":"Unblock domain"]})]})]})})]}),e.jsx(J,{children:e.jsx(j,{onClick:()=>f(!1),children:"OK"})})]}),P=()=>{const p=l.mode==="userOnly";return e.jsxs(e.Fragment,{children:[e.jsxs(_,{children:[e.jsx(Y,{className:"mb-1 flex flex-col gap-1",children:p?"Unblock this user?":"Unblock this domain?"}),e.jsx(K,{children:p?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"font-semibold text-black",children:s})," will be able to follow you and engage with your public posts."]}):e.jsxs(e.Fragment,{children:["Users from ",e.jsx("span",{className:"font-semibold text-black",children:T})," will be able to follow you and engage with your public posts."]})})]}),e.jsxs(J,{children:[e.jsx(me,{children:"Cancel"}),e.jsx(j,{onClick:p?I:E,children:"Unblock"})]})]})};return e.jsxs(de,{open:k,onOpenChange:f,children:[d&&e.jsx(De,{asChild:!0,onClick:D,children:d}),e.jsx(ue,{className:`${l.mode==="dual"&&"max-w-[600px]"}`,children:l.mode==="dual"?B():P()})]})},bs=({account:s,children:o,onCopyHandle:n,onBlockAccount:c,onBlockDomain:x,disabled:d=!1,isBlocked:i=!1,isDomainBlocked:r=!1})=>{const[t,a]=u.useState(null),[m,l]=u.useState(!1),h=f=>{f.stopPropagation(),n()},b=f=>{f.stopPropagation(),c()},k=f=>{f.stopPropagation(),x()},w=s?.handle,y=w?.split("@").filter(Boolean)[1],M=()=>e.jsx(de,{open:m,onOpenChange:l,children:e.jsxs(ue,{onClick:f=>f.stopPropagation(),children:[e.jsxs(_,{children:[e.jsx(Y,{className:"mb-1 flex flex-col gap-1",children:t==="user"?"Block this user?":"Block this domain?"}),e.jsx(K,{children:t==="user"?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"font-semibold text-black",children:w})," will be able to see your public posts, but will no longer be able follow you or interact with your content on the social web."]}):e.jsxs(e.Fragment,{children:["All users from ",e.jsx("span",{className:"font-semibold text-black",children:y})," will be able to see your public posts, but won't be able to follow you or interact with your content."]})})]}),e.jsxs(J,{children:[t!=="domain"&&e.jsx(j,{className:"-ml-3 mr-auto hover:bg-transparent hover:opacity-80",variant:"ghost",onClick:f=>{f.stopPropagation(),a("domain")},children:"Block domain instead"}),e.jsx(me,{onClick:f=>f.stopPropagation(),children:"Cancel"}),e.jsx(Ee,{className:Se({variant:"destructive"}),onClick:t==="user"?b:k,children:"Block"})]})]})}),D=()=>s&&e.jsx(pe,{handle:s.handle,isDomainBlocked:s.domainBlockedByMe,isOpen:m,isUserBlocked:s.blockedByMe,onOpenChange:l,onUnblockDomain:x,onUnblockUser:c});return e.jsxs(e.Fragment,{children:[e.jsxs(Oe,{children:[e.jsx(Re,{disabled:d,asChild:!0,onClick:f=>f.stopPropagation(),children:o}),e.jsx(Ie,{align:"end",className:"p-2",children:e.jsxs("div",{className:"flex w-48 flex-col",children:[e.jsx(ne,{asChild:!0,children:e.jsx(j,{className:"justify-start",variant:"ghost",onClick:h,children:"Copy handle"})}),e.jsx(ne,{asChild:!0,children:e.jsx(j,{className:"justify-start text-red hover:bg-red/5 hover:text-red",variant:"ghost",onClick:f=>{f.stopPropagation(),!i&&!r&&a("user"),l(!0)},children:i?"Unblock user":r?"Unblock domain":"Block user"})})]})})]}),i||r?D():M()]})},gs=({account:s,onUnblock:o,onDomainUnblock:n,className:c=""})=>{const[x,d]=u.useState(!1),i=e.jsx(j,{className:`min-w-[90px] ${c}`,variant:"destructive",onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),children:x?"Unblock":"Blocked"});return e.jsx(pe,{handle:s.handle,isDomainBlocked:s.domainBlockedByMe,isUserBlocked:s.blockedByMe,trigger:i,onUnblockDomain:n,onUnblockUser:o})},re=()=>{},ks=({account:s,customFields:o,isLoadingAccount:n,postsTab:c,likesTab:x,followingTab:d,followersTab:i})=>{const r=xe(),t=Ae(),a=$(),{canGoBack:m}=$e(),l=r.handle?`/profile/${r.handle}`:"/profile",h=!r.handle,b=r.handle?r.tab||"":t.pathname.split("/").pop()||"",k=u.useMemo(()=>h?["likes","following","followers"]:["following","followers"],[h]),w=k.includes(b)?b:"posts",y=He("index"),M=Le("index"),D=Ve("index"),f=ze("index"),I=W("index","me"),{data:E}=r.handle?I:{data:void 0},T=r.handle===E?.handle||!r.handle,B=s?.blockedByMe,P=s?.domainBlockedByMe,[p,N]=u.useState(!1),[F,g]=u.useState(!1),C=u.useRef(null);u.useEffect(()=>()=>{C.current&&window.clearTimeout(C.current)},[]);const q=()=>{B?M.mutate(s):(y.mutate(s),U.success("User blocked")),N(!1)},Z=()=>{P?f.mutate({url:s.apId,handle:s.handle}):(D.mutate({url:s.apId,handle:s.handle}),U.success("Domain blocked")),N(!1)},ee=async()=>{if(!s?.handle||!navigator?.clipboard?.writeText){U.error("Unable to copy handle");return}try{await navigator.clipboard.writeText(s.handle),g(!0),U.success("Handle copied"),C.current&&window.clearTimeout(C.current),C.current=window.setTimeout(()=>g(!1),2e3)}catch{U.error("Failed to copy handle"),g(!1)}},[O,je]=u.useState(!1),[be,se]=u.useState(!1),ge=()=>{je(!O)},V=u.useRef(null),[le,ke]=u.useState(!1);u.useEffect(()=>{V.current&&ke(V.current.scrollHeight>160)},[O,s?.bio,o,n]),u.useEffect(()=>{b&&(k.includes(b)||a(l,{replace:!0}))},[k,l,a,b]);const we=v=>v==="posts"?l:`${l}/${v}`,ve=v=>{v!==w&&a(we(v),{replace:!0})};return!n&&!s?e.jsx(te,{children:e.jsx("div",{className:"mx-auto mt-4 flex w-full max-w-[620px] flex-col items-center [&_svg]:translate-x-px",children:e.jsxs(Qe,{children:[e.jsx(_e,{children:e.jsx(xs,{})}),e.jsx("div",{children:"Profile not found"})]})})}):e.jsx(te,{children:e.jsx("div",{className:"z-0 mx-[max(-4vw,-32px)] -mt-9 flex flex-col items-center pb-16",children:e.jsx("div",{className:"mx-auto w-full",children:e.jsxs(e.Fragment,{children:[s?.bannerImageUrl?e.jsx("div",{className:"h-[15vw] min-h-[200px] w-full overflow-hidden bg-gradient-to-tr from-gray-200 to-gray-100",children:e.jsx("img",{alt:s?.name,className:"size-full object-cover",referrerPolicy:"no-referrer",src:s?.bannerImageUrl})}):e.jsx("div",{className:"h-[max(8vw,132px)] w-full overflow-hidden bg-gradient-to-tr from-white to-white dark:from-black dark:to-black"}),e.jsxs("div",{className:`mx-auto max-w-[620px] px-6 ${!s?.bannerImageUrl&&!m?"-mt-8":"-mt-12"}`,children:[e.jsxs("div",{className:"flex items-end justify-between",children:[e.jsx("div",{className:"-ml-2 rounded-full bg-white p-1 dark:bg-black",children:n?e.jsx(R,{className:"size-[92px] rounded-full"}):e.jsx(oe,{author:{icon:{url:s?.avatarUrl},name:s?.name,handle:s?.handle},size:"lg"})}),!T&&!n&&e.jsxs("div",{className:"flex gap-2",children:[B||P?e.jsx(gs,{account:s,onDomainUnblock:Z,onUnblock:q}):e.jsx(ae,{following:s?.followedByMe,handle:s?.handle,type:"primary",onFollow:re,onUnfollow:re}),e.jsx(bs,{account:s,isBlocked:B,isDomainBlocked:P,onBlockAccount:q,onBlockDomain:Z,onCopyHandle:ee,children:e.jsx(j,{"aria-label":"Open profile menu",variant:"outline",children:e.jsx(Ye,{})})})]}),T&&!n&&e.jsxs(Ke,{open:be,onOpenChange:se,children:[e.jsx(Ge,{children:e.jsx(ms,{children:e.jsx(j,{variant:"secondary",children:"Edit profile"})})}),e.jsxs(Je,{className:"w-full max-w-[520px]",onOpenAutoFocus:v=>v.preventDefault(),children:[e.jsx(We,{children:e.jsx(Xe,{children:"Profile settings"})}),s&&e.jsx(cs,{account:s,setIsEditingProfile:se})]})]})]}),e.jsx(qe,{className:"mt-4 truncate break-anywhere",children:n?e.jsx(R,{className:"w-32"}):s?.name}),e.jsxs("div",{className:"mb-4 flex items-center gap-2",children:[e.jsx("a",{className:"inline-flex max-w-full truncate text-[1.5rem] text-gray-800 hover:text-gray-900 dark:text-gray-600 dark:hover:text-gray-500",href:s?.url,rel:"noopener noreferrer",target:"_blank",children:e.jsx("span",{className:"truncate",children:n?e.jsx(R,{className:"w-full max-w-56"}):s?.handle})}),!n&&e.jsx(j,{className:"-ml-1.5 size-6 p-0 text-gray-800 hover:text-gray-900 dark:text-gray-700 dark:hover:text-gray-600",title:"Copy handle",variant:"link",onClick:ee,children:F?e.jsx(Ze,{size:16}):e.jsx(fs,{size:16})}),s?.followsMe&&!n&&e.jsx(es,{className:"mt-px whitespace-nowrap",variant:"secondary",children:"Follows you"})]}),(s?.bio||o?.length>0)&&e.jsxs("div",{ref:V,className:`ap-profile-content relative text-[1.5rem] break-anywhere [&>p]:mb-3 ${O?"max-h-none pb-7":"max-h-[160px] overflow-hidden"} relative`,children:[n?e.jsxs(e.Fragment,{children:[e.jsx(R,{}),e.jsx(R,{className:"w-full max-w-48"})]}):e.jsx("div",{dangerouslySetInnerHTML:{__html:ss(ls(s?.bio??"",["a","br"]))}}),o?.map(v=>e.jsxs("span",{className:"mt-3 line-clamp-1 flex flex-col text-[1.5rem]",children:[e.jsx("span",{className:"text-xs font-semibold",children:v.name}),e.jsx("span",{dangerouslySetInnerHTML:{__html:v.value},className:"ap-profile-content truncate"})]})),!O&&le&&e.jsx("div",{className:"absolute inset-x-0 bottom-0 h-16 bg-gradient-to-t from-white via-white/100 via-60% to-transparent dark:from-black dark:via-black/100"}),le&&e.jsx(j,{className:"absolute bottom-0 h-auto p-0 text-md",variant:"link",onClick:ge,children:O?"Show less":"Show all"})]}),e.jsxs(ds,{className:"mt-5",value:w,variant:"underline",onValueChange:v=>ve(v),children:[e.jsxs(us,{children:[e.jsx(S,{value:"posts",children:"Posts"}),h&&e.jsxs(S,{value:"likes",children:["Likes",e.jsx(Q,{children:z(s?.likedCount||0)})]}),e.jsxs(S,{value:"following",children:["Following",e.jsx(Q,{children:z(s?.followingCount||0)})]}),e.jsxs(S,{value:"followers",children:["Followers",e.jsx(Q,{children:z(s?.followerCount||0)})]})]}),e.jsx(A,{value:"posts",children:(B||P)&&!p?e.jsxs(H,{children:[e.jsx(L,{children:e.jsx(ns,{})}),e.jsxs("div",{className:"mt-2 flex flex-col items-center gap-0.5",children:[e.jsxs(G,{children:[s.name," is blocked"]}),e.jsx("p",{children:"You can view the posts, but it won't unblock the user."}),e.jsx(j,{className:"mt-4",variant:"secondary",onClick:()=>N(!0),children:"View posts"})]})]}):c}),h&&e.jsx(A,{value:"likes",children:x}),e.jsx(A,{value:"following",children:d}),e.jsx(A,{value:"followers",children:i})]},r.handle||s?.handle||"current-user")]})]})})})})},ws=({handle:s})=>{const{postsByAccountQuery:o}=os(s||"me",{enabled:!0}),{data:n,fetchNextPage:c,hasNextPage:x,isFetchingNextPage:d,isLoading:i}=o,r=n?.pages.flatMap(t=>t.posts)??Array.from({length:5},(t,a)=>({id:`placeholder-${a}`,object:{}}));return e.jsx(js,{fetchNextPage:c,hasNextPage:x,isFetchingNextPage:d,isLoading:i,noResultsMessage:s?`${s} hasn't posted anything yet`:"You haven't posted anything yet.",posts:r})},vs=()=>{const{postsLikedByAccountQuery:s}=as({enabled:!0}),{data:o,fetchNextPage:n,hasNextPage:c,isFetchingNextPage:x,isLoading:d}=s,i=o?.pages.flatMap(r=>r.posts)??Array.from({length:5},(r,t)=>({id:`placeholder-${t}`,object:{}}));return e.jsx(ps,{fetchNextPage:n,hasNextPage:c,isFetchingNextPage:x,isLoading:d,posts:i})},ys=({handle:s})=>{const o=fe(s===""?"me":s,"following"),{data:n,fetchNextPage:c,hasNextPage:x,isFetchingNextPage:d,isLoading:i}=o,r=n?.pages.flatMap(t=>"following"in t?t.following:"accounts"in t?t.accounts.map(a=>({actor:{id:a.id,name:a.name,handle:a.handle,icon:{url:a.avatarUrl}},isFollowing:a.isFollowing,blockedByMe:a.blockedByMe,domainBlockedByMe:a.domainBlockedByMe})):[])??[];return e.jsx(he,{actors:r,fetchNextPage:c,hasNextPage:x,isFetchingNextPage:d,isLoading:i,noResultsMessage:`${s||"You"} have no following`})},Ns=({handle:s})=>{const o=fe(s===""?"me":s,"followers"),{data:n,fetchNextPage:c,hasNextPage:x,isFetchingNextPage:d,isLoading:i}=o,r=n?.pages.flatMap(t=>"followers"in t?t.followers:"accounts"in t?t.accounts.map(a=>({actor:{id:a.id,name:a.name,handle:a.handle,icon:{url:a.avatarUrl}},isFollowing:a.isFollowing})):[])??[];return e.jsx(he,{actors:r,fetchNextPage:c,hasNextPage:x,isFetchingNextPage:d,isLoading:i,noResultsMessage:`${s||"You"} have no followers yet`})},Ys=({})=>{const s=xe(),{data:o,isLoading:n,error:c,refetch:x}=W("index",s.handle||"me");if(u.useEffect(()=>{x()},[s.handle,x]),c&&ts(c)&&c.statusCode!==404)return e.jsx(rs,{errorCode:c.code,statusCode:c.statusCode});const d=Object.keys(o?.customFields||{}).map(m=>({name:m,value:o.customFields[m]}))||[],i=e.jsx(ws,{handle:s.handle||""}),r=e.jsx(vs,{}),t=e.jsx(ys,{handle:s.handle||""}),a=e.jsx(Ns,{handle:s.handle||""});return e.jsx(ks,{account:o,customFields:d,followersTab:a,followingTab:t,isLoadingAccount:n,likesTab:r,postsTab:i})};export{Ys as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as o,j as n,ca as Cn,cb as Sn,B as A,b$ as Wn,cd as zn,cc as Kn,e as rn,cU as Vn,b as En,cZ as gn,S as E,P as Yn,A as Qn,h as Zn,g as fn,d as Jn,n as Xn,bF as Gn,f as pn,F as an,i as on,c_ as ne,o as ee,a as te,u as ae,p as oe,L as re,aO as ie,D as de,t as ce,v as se,w as le,a9 as ge,c$ as pe,d0 as ue,bx as bn,by as he}from"./index-
|
|
1
|
+
import{r as o,j as n,ca as Cn,cb as Sn,B as A,b$ as Wn,cd as zn,cc as Kn,e as rn,cU as Vn,b as En,cZ as gn,S as E,P as Yn,A as Qn,h as Zn,g as fn,d as Jn,n as Xn,bF as Gn,f as pn,F as an,i as on,c_ as ne,o as ee,a as te,u as ae,p as oe,L as re,aO as ie,D as de,t as ce,v as se,w as le,a9 as ge,c$ as pe,d0 as ue,bx as bn,by as he}from"./index-CJU9a2PB.js";import{M as me}from"./minus-emzwh6hq.js";import{u as ke,D as fe,A as be,S as xn}from"./deleted-feed-item-C0FcyLMN.js";import{T as xe}from"./topic-filter-DnuJJBAE.js";import{E as vn}from"./empty-indicator-BXWniwsl.js";import{I as yn}from"./inbox-CRoP9sy5.js";import"./trash-CZ3EXwTL.js";const un=["1.5rem","1.6rem","1.7rem","1.8rem","2rem"],U={BACKGROUND_COLOR:"ghost-ap-background-color",FONT_SIZE:"ghost-ap-font-size",FONT_STYLE:"ghost-ap-font-style"},P={SYSTEM:{id:"system",color:"#fff",background:"bg-white dark:bg-black",button:"bg-white dark:bg-black",border:"border-black/[8%] dark:border-gray-950"},SEPIA:{id:"sepia",color:"#FCF8F1",background:"bg-[#FCF8F1]",button:"bg-[#FCF8F1] hover:bg-black/[3%] text-black hover:text-black",border:"border-black/[8%]"},LIGHT:{id:"light",color:"#fff",background:"bg-white",button:"hover:bg-black/[3%] text-black hover:text-black",border:"border-black/[8%] dark:border-gray-950"},DARK:{id:"dark",color:"#15171a",background:"bg-black",button:"text-white dark:bg-black dark:hover:bg-gray-900",border:"border-black/[8%] dark:border-gray-950"}},ve=()=>{const[a,s]=o.useState(()=>localStorage.getItem(U.BACKGROUND_COLOR)?.toUpperCase()||"SYSTEM"),[t,p]=o.useState(()=>{const r=localStorage.getItem(U.FONT_SIZE);return r?parseInt(r):2}),[c,k]=o.useState(()=>localStorage.getItem(U.FONT_STYLE)||"sans"),i=r=>{s(r),localStorage.setItem(U.BACKGROUND_COLOR,P[r].id)};return o.useEffect(()=>{localStorage.setItem(U.FONT_SIZE,t.toString())},[t]),o.useEffect(()=>{localStorage.setItem(U.FONT_STYLE,c)},[c]),{backgroundColor:a,currentFontSizeIndex:t,fontStyle:c,handleColorChange:i,setFontStyle:k,increaseFontSize:()=>{p(r=>Math.min(r+1,un.length-1))},decreaseFontSize:()=>{p(r=>Math.max(r-1,0))},resetFontSize:()=>p(2),fontSize:un[t]}},wn=({backgroundColor:a,currentFontSizeIndex:s,fontStyle:t,onColorChange:p,onFontStyleChange:c,onDecreaseFontSize:k,onIncreaseFontSize:i,onResetFontSize:u,onOpenChange:v})=>{const h=l=>a===l,r=l=>t===l;return n.jsx(ye,{backgroundColor:a,currentFontSizeIndex:s,fontStyle:t,isActiveColor:h,isActiveFont:r,onColorChange:p,onDecreaseFontSize:k,onFontStyleChange:c,onIncreaseFontSize:i,onOpenChange:v,onResetFontSize:u})},ye=({backgroundColor:a,isActiveColor:s,isActiveFont:t,onColorChange:p,onFontStyleChange:c,currentFontSizeIndex:k,onDecreaseFontSize:i,onIncreaseFontSize:u,onResetFontSize:v,onOpenChange:h})=>n.jsxs(Cn,{modal:!1,onOpenChange:h,children:[n.jsx(Sn,{asChild:!0,children:n.jsx(A,{className:`size-9 rounded-full ${P[a].button}`,variant:"ghost",children:n.jsx(Wn.Typography,{className:"!size-[18px]"})})}),n.jsx(zn,{align:"end",className:"w-[224px]",onCloseAutoFocus:r=>r.preventDefault(),onOpenAutoFocus:r=>r.preventDefault(),children:n.jsxs("div",{className:"flex flex-col gap-4",children:[n.jsxs("div",{className:"flex items-center justify-between gap-[6px]",children:[n.jsx(A,{className:`h-7 flex-1 rounded-[6px] bg-gray-200 p-0 text-[1.1rem] text-black hover:bg-gray-250 dark:bg-gray-925 dark:text-white dark:hover:bg-gray-900 [&_svg]:size-[14px] ${s("SYSTEM")?"outline outline-2 outline-green":""}`,variant:"secondary",onClick:()=>p("SYSTEM"),children:"Auto"}),n.jsx(A,{className:`h-7 flex-1 rounded-[6px] bg-[#ece6d9] p-0 hover:bg-[#ece6d9] ${s("SEPIA")?"outline outline-2 outline-green":"border border-[#ece6d9]"}`,onClick:()=>p("SEPIA")}),n.jsx(A,{className:`h-7 flex-1 rounded-[6px] bg-white p-0 hover:bg-white ${s("LIGHT")?"outline outline-2 outline-green":"border border-gray-200"}`,onClick:()=>p("LIGHT")}),n.jsx(A,{className:`h-7 flex-1 rounded-[6px] bg-black p-0 hover:bg-black dark:border dark:border-gray-925 ${s("DARK")?"outline outline-2 outline-green":""}`,onClick:()=>p("DARK")})]}),n.jsxs("div",{className:"flex gap-2",children:[n.jsxs(A,{className:`flex h-auto w-full flex-col gap-1 rounded-[6px] bg-gray-200 text-black hover:bg-gray-250 dark:bg-gray-925 dark:text-white dark:hover:bg-gray-900 ${t("sans")&&"outline outline-2 outline-green"}`,variant:"secondary",onClick:()=>c("sans"),children:[n.jsx("span",{className:"text-[2rem] font-bold leading-none",children:"Aa"}),n.jsx("span",{className:"text-[1.1rem]",children:"System"})]}),n.jsxs(A,{className:`flex h-auto w-full flex-col gap-1 rounded-[6px] bg-gray-200 text-black hover:bg-gray-250 dark:bg-gray-925 dark:text-white dark:hover:bg-gray-900 ${t("serif")&&"outline outline-2 outline-green"}`,variant:"secondary",onClick:()=>c("serif"),children:[n.jsx("span",{className:"pt-1 font-serif text-[2rem] font-bold leading-none",children:"Aa"}),n.jsx("span",{className:"font-serif text-[1.2rem]",children:"Serif"})]})]}),n.jsxs("div",{className:"flex gap-2",children:[n.jsx(A,{className:"h-8 w-full rounded-[6px] bg-gray-200 text-black hover:bg-gray-250 dark:bg-gray-925 dark:text-white dark:hover:bg-gray-900 [&_svg]:size-[14px]",disabled:k===0,variant:"secondary",onClick:i,children:n.jsx(me,{})}),n.jsx(A,{className:"h-8 w-full rounded-[6px] bg-gray-200 text-black hover:bg-gray-250 dark:bg-gray-925 dark:text-white dark:hover:bg-gray-900",variant:"secondary",onClick:v,children:n.jsx("span",{className:"text-[1.6rem] font-bold",children:"Aa"})}),n.jsx(A,{className:"h-8 w-full rounded-[6px] bg-gray-200 text-black hover:bg-gray-250 dark:bg-gray-925 dark:text-white dark:hover:bg-gray-900 [&_svg]:size-[14px]",disabled:k===un.length-1,variant:"secondary",onClick:u,children:n.jsx(Kn,{})})]})]})})]}),we=({tocItems:a,iframeElement:s,modalRef:t,className:p="!visible absolute inset-y-0 right-7 z-40 hidden lg:!block",onOpenChange:c})=>{const[k,i]=o.useState(null),u=rn.useRef(!1),v=h=>{if(!s?.contentDocument)return;const r=s.contentDocument.getElementById(h);r&&t.current&&(u.current=!0,i(h),t.current.scrollTo({top:r.offsetTop-20,behavior:"smooth"}),setTimeout(()=>{u.current=!1},1e3))};return o.useEffect(()=>{if(!s?.contentDocument||a.length<=1)return;const h=t.current;if(!h)return;const r=()=>{if(u.current)return;const d=s.contentDocument;if(!d)return;const _=h.scrollTop,F=100,D=a.map(S=>d.getElementById(S.id)).filter(S=>S!==null).map(S=>({id:S.id,top:S.offsetTop}));if(!D.length)return;const L=D.reduce((S,M)=>M.top-F<=_?M:S);i(L?.id||null)},l=()=>{requestAnimationFrame(r)};return h.addEventListener("scroll",l),r(),()=>{h.removeEventListener("scroll",l)}},[s,a,t]),a.length<=1?null:n.jsx("div",{className:p,children:n.jsx("div",{className:"sticky top-1/2 -translate-y-1/2",children:n.jsx(Se,{activeHeading:k||"",items:a,onItemClick:v,onOpenChange:c})})})},je={1:"w-3",2:"w-2",3:"w-1"},Ce={1:"pl-2",2:"pl-6",3:"pl-10"},Se=({items:a,activeHeading:s,onItemClick:t,onOpenChange:p})=>{const[c,k]=o.useState(!1),i=rn.useRef();if(rn.useEffect(()=>()=>{i.current&&clearTimeout(i.current)},[]),a.length===0)return null;const u=d=>Math.min(d,3),v=d=>je[u(d)],h=d=>Ce[u(d)],r=()=>{i.current&&clearTimeout(i.current),k(!0),p?.(!0)},l=()=>{i.current=setTimeout(()=>{k(!1),p?.(!1)},100)};return n.jsxs(Cn,{modal:!1,open:c,onOpenChange:k,children:[n.jsx(Sn,{asChild:!0,children:n.jsx("div",{className:"absolute right-2 top-1/2 flex -translate-y-1/2 flex-col items-end gap-2 rounded-md p-2 text-base dark:bg-black",onMouseEnter:r,onMouseLeave:l,children:a.map(d=>n.jsx("div",{className:`h-[2px] rounded-sm ${s===d.id?"bg-black dark:bg-white":"bg-gray-400 dark:bg-gray-700"} pr-1 transition-all ${v(d.level)}`},d.id))})}),n.jsx(zn,{align:"center",className:"w-[240px] p-2",side:"left",sideOffset:-28,onCloseAutoFocus:d=>d.preventDefault(),onMouseEnter:r,onMouseLeave:l,onOpenAutoFocus:d=>d.preventDefault(),children:n.jsx("nav",{"aria-label":"Table of contents navigation",className:"max-h-[60vh] overflow-y-auto",role:"navigation",children:a.map(d=>n.jsx("button",{className:`line-clamp-2 block w-full cursor-pointer rounded py-1 text-left text-sm leading-tight ${s===d.id?"text-black dark:text-white":"text-gray-700 dark:text-gray-600"} hover:bg-gray-75 hover:text-gray-900 dark:hover:bg-grey-925 dark:hover:text-white ${h(d.level)}`,type:"button",onClick:()=>t(d.id),children:n.jsx("span",{className:"line-clamp-2",children:d.text})},d.id))})})]})},ze=()=>`<style>
|
|
2
2
|
|
|
3
3
|
/* Variables */
|
|
4
4
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as t,bB as A,e as u,b as g,bC as E,r as j,bx as T,by as z,L as S,E as M,c as P,bD as U,S as w,A as $,B,bp as L,n as C,h as v,d as W,s as _,bE as D,bF as H,f as O,P as q}from"./index-BYawr8p9.js";import{A as V}from"./at-sign-CqQzllfI.js";import{R as G,U as K}from"./user-round-check-BjHbfXKY.js";import{R as Q}from"./reply-JE8tmvOn.js";const I=({notificationType:a,size:l="lg",className:i})=>{let r,s="";const n="white",o=l==="sm"?13:20,c=l==="sm"?2:1.5;switch(a){case"follow":r=t.jsx(K,{className:`-mr-0.5 -mt-0.5 ${l==="sm"&&"size-[11px]"}`,color:n,size:o,strokeWidth:c}),s="bg-blue-600";break;case"like":r=t.jsx(A,{className:`${l==="sm"?"size-[11px]":"mt-px size-5"}`,color:n,strokeWidth:c}),s="bg-pink-600";break;case"reply":r=t.jsx(Q,{className:"mb-px mr-px",color:n,size:o,strokeWidth:c}),s="bg-purple-600";break;case"repost":r=t.jsx(G,{color:n,size:o,strokeWidth:c}),s="bg-green-500";break;case"mention":r=t.jsx(V,{className:`${l==="sm"?"size-[12px]":"size-5"}`,color:n,size:o,strokeWidth:c}),s="bg-orange-500";break}return t.jsx("div",{className:`flex ${l==="sm"?"size-5":"size-9"} items-center justify-center rounded-full ${s} ${i&&i}`,children:r})},Z=u.createContext(void 0),h=({isGrouped:a,centerAlign:l,children:i,onClick:r,url:s,className:n})=>t.jsx(Z.Provider,{value:{onClick:r,url:s},children:t.jsx("div",{className:`group relative -mx-4 -my-px ${a?"grid":"flex"} ${l?"items-center":"items-start"} cursor-pointer grid-cols-[auto_1fr] gap-x-4 gap-y-2.5 rounded-lg px-4 py-5 text-left break-anywhere hover:bg-gray-75 ${n}`,role:"button",onClick:r,children:i})}),J=({size:a="lg",type:l})=>t.jsx("div",{className:"col-start-1 row-start-1",children:t.jsx(I,{notificationType:l,size:a})}),X=({children:a})=>t.jsx("div",{className:"col-start-2 row-start-1 flex gap-2",children:a}),Y=({children:a})=>t.jsx("div",{className:"col-start-2 row-start-2 -mt-0.5 grow overflow-hidden",children:a});h.Icon=J;h.Avatars=X;h.Content=Y;const ee=()=>t.jsx("div",{className:"h-px w-full bg-gray-150 dark:bg-gray-950"});function te(a){const r=new Date(a).getTime();return(Math.floor(r/864e5)*864e5).toString()}function se(a){const l={};let i=null,r=0;return a.forEach(s=>{s.type!==i&&(r+=1,i=s.type);let n="";const o=`_${te(s.createdAt)}`,c=`_seq${r}`;switch(s.type){case"like":s.post?.id&&(n=`like_${s.post.id}${o}${c}`);break;case"reply":n=`reply_${s.id}`;break;case"repost":s.post?.id&&(n=`repost_${s.post.id}${o}${c}`);break;case"follow":n=`follow_${o}${c}`;break;case"mention":n=`mention_${s.id}`;break}l[n]||(l[n]={id:s.id,type:s.type,actors:[],post:s.post,inReplyTo:s.inReplyTo,createdAt:s.createdAt}),l[n].actors.find(f=>f.id===s.actor.id)||l[n].actors.push(s.actor)}),Object.values(l)}const ae=({group:a})=>{const[l,...i]=a.actors,r=i.length>0,s="cursor-pointer font-semibold hover:underline text-black dark:text-white",n=g(),o=t.jsxs(t.Fragment,{children:[t.jsx(q,{actor:l,align:"center",isCurrentUser:!1,children:t.jsx("span",{className:s,onClick:c=>{c?.stopPropagation(),v(l.handle,n)},children:l.name})}),r&&` and ${i.length} ${i.length>1?"others":"other"}`]});switch(a.type){case"follow":return t.jsxs(t.Fragment,{children:[o," followed you"]});case"like":return t.jsxs(t.Fragment,{children:[o," liked your ",a.post?.type==="article"?"post":"note"]});case"repost":return t.jsxs(t.Fragment,{children:[o," reposted your ",a.post?.type==="article"?"post":"note"]});case"reply":if(a.inReplyTo&&typeof a.inReplyTo!="string")return o;break;case"mention":return o}return t.jsx(t.Fragment,{})},ne=({content:a,className:l,stripTags:i=[]})=>{const r=j.useRef(null),s=g();return j.useEffect(()=>{const n=r.current;if(!n)return;const o=c=>{const y=c.target.closest("a[data-profile]");if(y){const x=y.getAttribute("data-profile")?.trim();/^@([\w.-]+)@([\w-]+\.[\w.-]+[a-zA-Z])$/.test(x||"")&&x&&(c.preventDefault(),c.stopPropagation(),v(x,s))}};return n.addEventListener("click",o),()=>{n.removeEventListener("click",o)}},[s,a]),t.jsx("div",{dangerouslySetInnerHTML:{__html:_(a||"",i)},ref:r,className:l})},oe=()=>{const[a,l]=u.useState({}),i=g(),r=e=>{l(d=>({...d,[e]:!d[e]}))},s=()=>{},n=5,{data:o,error:c,fetchNextPage:f,hasNextPage:y,isFetchingNextPage:x,isLoading:b}=E("index"),k=o?.pages.flatMap(e=>se(e.notifications))??Array(10).fill({actors:[{}]}),p=j.useRef(null),N=j.useRef(null);j.useEffect(()=>(p.current&&p.current.disconnect(),p.current=new IntersectionObserver(e=>{e[0].isIntersecting&&y&&!x&&f()}),N.current&&p.current.observe(N.current),()=>{p.current&&p.current.disconnect()}),[y,x,f]);const R=(e,d)=>{switch(e.type){case"like":e.post&&i(`/${e.post.type==="article"?"reader":"notes"}/${encodeURIComponent(e.post.id)}`);break;case"reply":e.post&&e.inReplyTo&&i(`/notes/${encodeURIComponent(e.post.id)}`);break;case"repost":e.post&&i(`/${e.post.type==="article"?"reader":"notes"}/${encodeURIComponent(e.post.id)}`);break;case"follow":e.actors.length>1?r(e.id||`${e.type}_${d}`):v(e.actors[0].handle,i);break;case"mention":e.post&&i(`/notes/${encodeURIComponent(e.post.id)}`);break}};return c&&T(c)?t.jsx(z,{errorCode:c.code,statusCode:c.statusCode}):t.jsx(S,{children:t.jsxs("div",{className:"z-0 flex w-full flex-col items-center",children:[b===!1&&k.length===0&&t.jsxs(M,{children:[t.jsx(P,{children:t.jsx(U,{})}),"Quiet for now, but not for long! When someone likes, boosts, or replies to you, you'll find it here."]}),k.length>0&&t.jsxs(t.Fragment,{children:[t.jsx("div",{className:"my-8 flex w-full max-w-[620px] flex-col max-md:mt-5",children:k.map((e,d)=>t.jsxs(u.Fragment,{children:[t.jsxs(h,{centerAlign:e.actors.length<2&&e.type==="follow",className:"hover:bg-gray-75 dark:hover:bg-gray-950",isGrouped:e.actors.length>1,onClick:()=>R(e,d),children:[b?t.jsx(w,{className:"rounded-full",containerClassName:"flex h-10 w-10"}):e.actors.length>1?t.jsx(h.Icon,{type:e.type}):t.jsxs("div",{className:"relative",children:[t.jsx($,{author:{icon:{url:e.actors[0].avatarUrl||""},name:e.actors[0].name,handle:e.actors[0].handle},size:"notification"},e.actors[0].id),t.jsx(I,{className:"absolute -bottom-1 -right-1 z-10 border-2 border-white dark:border-black",notificationType:e.type,size:"sm"})]}),e.actors.length>1&&t.jsx(h.Avatars,{children:t.jsxs("div",{className:"flex w-full flex-col",children:[t.jsxs("div",{className:"relative flex items-center pl-2",children:[!a[e.id||`${e.type}_${d}`]&&e.actors.slice(0,n).map(m=>t.jsx($,{author:{icon:{url:m.avatarUrl||""},name:m.name,handle:m.handle},className:"-ml-2 !bg-[#F3F3F3] outline outline-2 outline-white group-hover:!bg-[#EDEEF0] group-hover:outline-gray-75 dark:outline-black group-hover:dark:outline-gray-950",size:"notification"},m.id)),e.actors.length>n&&!a[e.id||`${e.type}_${d}`]&&t.jsx("div",{className:"absolute right-[28px] z-10 flex size-9 items-center justify-center rounded-full bg-black/50 text-base font-semibold tracking-tightest text-white",children:`+${e.actors.length-n}`}),e.actors.length>1&&t.jsxs(B,{className:`group flex items-center gap-0.5 text-gray-700 hover:bg-transparent hover:text-black dark:text-gray-600 dark:hover:text-white ${a[e.id||`${e.type}_${d}`]?"ml-[-20px]":"ml-0 w-[28px]"}`,variant:"ghost",onClick:m=>{m?.stopPropagation(),r(e.id||`${e.type}_${d}`)},children:[t.jsx(L,{className:`${a[e.id||`${e.type}_${d}`]?"rotate-180":""}`,size:20,strokeWidth:1.5}),a[e.id||`${e.type}_${d}`]?"Hide":t.jsx("span",{className:"sr-only",children:"Show all"})]})]}),t.jsx("div",{className:`overflow-hidden transition-all duration-300 ease-in-out ${a[e.id||`${e.type}_${d}`]?"mb-2 max-h-[1384px] opacity-100":"max-h-0 opacity-0"}`,children:a[e.id||`${e.type}_${d}`]&&e.actors.length>1&&t.jsx("div",{className:"flex flex-col gap-2 pt-2",children:e.actors.map(m=>t.jsxs("div",{className:"group/item flex items-center justify-between gap-4 break-anywhere",onClick:F=>{F?.stopPropagation(),v(m.handle,i)},children:[t.jsxs("div",{className:"flex min-w-0 items-center",children:[t.jsx($,{author:{icon:{url:m.avatarUrl||""},name:m.name,handle:m.handle},size:"xs"}),t.jsx("span",{className:"ml-2 line-clamp-1 text-base font-semibold group-hover/item:underline dark:text-white",children:m.name}),t.jsx("span",{className:"ml-1 line-clamp-1 text-base text-gray-700 dark:text-gray-600",children:m.handle})]}),e.type==="follow"&&!m.followedByMe&&t.jsx(C,{following:!1,handle:m.handle,variant:"link"})]},m.id))})})]})}),t.jsxs(h.Content,{children:[t.jsx("div",{children:b?t.jsxs(t.Fragment,{children:[t.jsx(w,{}),t.jsx(w,{className:"w-full max-w-60"})]}):t.jsxs("div",{className:"flex justify-between",children:[t.jsxs("div",{className:"flex items-center gap-1",children:[t.jsx("span",{className:"truncate",children:t.jsx(ae,{group:e})}),e.actors.length<2&&t.jsxs(t.Fragment,{children:[t.jsx("span",{className:"mt-px text-[8px] text-gray-700 dark:text-gray-600",children:"•"}),t.jsx("span",{className:"mt-0.5 text-sm text-gray-700 dark:text-gray-600",children:W(e,!1)})]})]}),e.actors.length===1&&(e.type==="follow"||e.type==="reply"||e.type==="mention")&&!e.actors[0].followedByMe&&t.jsx(C,{following:!1,handle:e.actors[0].handle,variant:"link"})]})}),(e.type==="reply"&&e.inReplyTo||e.type==="mention"||e.type==="like"&&!e.post?.name&&e.post?.content||e.type==="repost"&&!e.post?.name&&e.post?.content)&&(e.type!=="reply"&&e.type!=="mention"?t.jsxs("div",{className:"ap-note-content mt-0.5 line-clamp-1 text-pretty text-sm text-gray-700 dark:text-gray-600",children:[e.post?.type==="article"&&e.post?.title&&t.jsxs(t.Fragment,{children:[e.post.title," — "]}),t.jsx("span",{dangerouslySetInnerHTML:{__html:_(e.post?.content||"")}})]}):t.jsx(t.Fragment,{children:t.jsxs("div",{className:"mt-2.5 rounded-md bg-gray-100 px-5 py-[14px] group-hover:bg-gray-200 dark:bg-gray-925/30 group-hover:dark:bg-black/40",children:[t.jsx(ne,{className:"ap-note-content text-pretty",content:e.post?.content||"",stripTags:["a"]}),e.post&&e.post.attachments&&e.post.attachments.length>0&&t.jsx("div",{className:"notification-attachments mb-1 [&_.attachment-gallery]:flex [&_.attachment-gallery]:flex-wrap [&_img]:aspect-square [&_img]:max-w-[calc(20%-6.4px)]",children:D({...e.post,type:"Note",attachment:e.post.attachments})})]})})),(e.type==="reply"&&e.post||e.type==="mention")&&t.jsx("div",{className:"mt-1.5",children:t.jsx(H,{actor:{...e.actors[0],icon:{url:e.actors[0].avatarUrl||""},id:e.actors[0].url,preferredUsername:e.actors[0].handle?.replace(/^@([^@]+)@.*$/,"$1")||"unknown"},buttonClassName:"hover:bg-gray-200",commentCount:e.post.replyCount||0,layout:"notification",likeCount:e.post.likeCount||0,object:{...e.post,liked:e.post.likedByMe,reposted:e.post.repostedByMe},repostCount:e.post.repostCount||0,onLikeClick:s})})]})]}),d<k.length-1&&t.jsx("div",{className:"pl-[52px]",children:t.jsx(ee,{})})]},e.id||`${e.type}_${d}`))}),t.jsx("div",{ref:N,className:"h-1"}),x&&t.jsx("div",{className:"-mt-4 mb-8 flex flex-col items-center justify-center space-y-4 text-center",children:t.jsx(O,{size:"md"})})]})]})})};export{oe as default};
|
|
1
|
+
import{j as t,bB as A,e as u,b as g,bC as E,r as j,bx as T,by as z,L as S,E as M,c as P,bD as U,S as w,A as $,B,bp as L,n as C,h as v,d as W,s as _,bE as D,bF as H,f as O,P as q}from"./index-CJU9a2PB.js";import{A as V}from"./at-sign-CYnGzOFc.js";import{R as G,U as K}from"./user-round-check-D3ihrrKL.js";import{R as Q}from"./reply-BvO85IDn.js";const I=({notificationType:a,size:l="lg",className:i})=>{let r,s="";const n="white",o=l==="sm"?13:20,c=l==="sm"?2:1.5;switch(a){case"follow":r=t.jsx(K,{className:`-mr-0.5 -mt-0.5 ${l==="sm"&&"size-[11px]"}`,color:n,size:o,strokeWidth:c}),s="bg-blue-600";break;case"like":r=t.jsx(A,{className:`${l==="sm"?"size-[11px]":"mt-px size-5"}`,color:n,strokeWidth:c}),s="bg-pink-600";break;case"reply":r=t.jsx(Q,{className:"mb-px mr-px",color:n,size:o,strokeWidth:c}),s="bg-purple-600";break;case"repost":r=t.jsx(G,{color:n,size:o,strokeWidth:c}),s="bg-green-500";break;case"mention":r=t.jsx(V,{className:`${l==="sm"?"size-[12px]":"size-5"}`,color:n,size:o,strokeWidth:c}),s="bg-orange-500";break}return t.jsx("div",{className:`flex ${l==="sm"?"size-5":"size-9"} items-center justify-center rounded-full ${s} ${i&&i}`,children:r})},Z=u.createContext(void 0),h=({isGrouped:a,centerAlign:l,children:i,onClick:r,url:s,className:n})=>t.jsx(Z.Provider,{value:{onClick:r,url:s},children:t.jsx("div",{className:`group relative -mx-4 -my-px ${a?"grid":"flex"} ${l?"items-center":"items-start"} cursor-pointer grid-cols-[auto_1fr] gap-x-4 gap-y-2.5 rounded-lg px-4 py-5 text-left break-anywhere hover:bg-gray-75 ${n}`,role:"button",onClick:r,children:i})}),J=({size:a="lg",type:l})=>t.jsx("div",{className:"col-start-1 row-start-1",children:t.jsx(I,{notificationType:l,size:a})}),X=({children:a})=>t.jsx("div",{className:"col-start-2 row-start-1 flex gap-2",children:a}),Y=({children:a})=>t.jsx("div",{className:"col-start-2 row-start-2 -mt-0.5 grow overflow-hidden",children:a});h.Icon=J;h.Avatars=X;h.Content=Y;const ee=()=>t.jsx("div",{className:"h-px w-full bg-gray-150 dark:bg-gray-950"});function te(a){const r=new Date(a).getTime();return(Math.floor(r/864e5)*864e5).toString()}function se(a){const l={};let i=null,r=0;return a.forEach(s=>{s.type!==i&&(r+=1,i=s.type);let n="";const o=`_${te(s.createdAt)}`,c=`_seq${r}`;switch(s.type){case"like":s.post?.id&&(n=`like_${s.post.id}${o}${c}`);break;case"reply":n=`reply_${s.id}`;break;case"repost":s.post?.id&&(n=`repost_${s.post.id}${o}${c}`);break;case"follow":n=`follow_${o}${c}`;break;case"mention":n=`mention_${s.id}`;break}l[n]||(l[n]={id:s.id,type:s.type,actors:[],post:s.post,inReplyTo:s.inReplyTo,createdAt:s.createdAt}),l[n].actors.find(f=>f.id===s.actor.id)||l[n].actors.push(s.actor)}),Object.values(l)}const ae=({group:a})=>{const[l,...i]=a.actors,r=i.length>0,s="cursor-pointer font-semibold hover:underline text-black dark:text-white",n=g(),o=t.jsxs(t.Fragment,{children:[t.jsx(q,{actor:l,align:"center",isCurrentUser:!1,children:t.jsx("span",{className:s,onClick:c=>{c?.stopPropagation(),v(l.handle,n)},children:l.name})}),r&&` and ${i.length} ${i.length>1?"others":"other"}`]});switch(a.type){case"follow":return t.jsxs(t.Fragment,{children:[o," followed you"]});case"like":return t.jsxs(t.Fragment,{children:[o," liked your ",a.post?.type==="article"?"post":"note"]});case"repost":return t.jsxs(t.Fragment,{children:[o," reposted your ",a.post?.type==="article"?"post":"note"]});case"reply":if(a.inReplyTo&&typeof a.inReplyTo!="string")return o;break;case"mention":return o}return t.jsx(t.Fragment,{})},ne=({content:a,className:l,stripTags:i=[]})=>{const r=j.useRef(null),s=g();return j.useEffect(()=>{const n=r.current;if(!n)return;const o=c=>{const y=c.target.closest("a[data-profile]");if(y){const x=y.getAttribute("data-profile")?.trim();/^@([\w.-]+)@([\w-]+\.[\w.-]+[a-zA-Z])$/.test(x||"")&&x&&(c.preventDefault(),c.stopPropagation(),v(x,s))}};return n.addEventListener("click",o),()=>{n.removeEventListener("click",o)}},[s,a]),t.jsx("div",{dangerouslySetInnerHTML:{__html:_(a||"",i)},ref:r,className:l})},oe=()=>{const[a,l]=u.useState({}),i=g(),r=e=>{l(d=>({...d,[e]:!d[e]}))},s=()=>{},n=5,{data:o,error:c,fetchNextPage:f,hasNextPage:y,isFetchingNextPage:x,isLoading:b}=E("index"),k=o?.pages.flatMap(e=>se(e.notifications))??Array(10).fill({actors:[{}]}),p=j.useRef(null),N=j.useRef(null);j.useEffect(()=>(p.current&&p.current.disconnect(),p.current=new IntersectionObserver(e=>{e[0].isIntersecting&&y&&!x&&f()}),N.current&&p.current.observe(N.current),()=>{p.current&&p.current.disconnect()}),[y,x,f]);const R=(e,d)=>{switch(e.type){case"like":e.post&&i(`/${e.post.type==="article"?"reader":"notes"}/${encodeURIComponent(e.post.id)}`);break;case"reply":e.post&&e.inReplyTo&&i(`/notes/${encodeURIComponent(e.post.id)}`);break;case"repost":e.post&&i(`/${e.post.type==="article"?"reader":"notes"}/${encodeURIComponent(e.post.id)}`);break;case"follow":e.actors.length>1?r(e.id||`${e.type}_${d}`):v(e.actors[0].handle,i);break;case"mention":e.post&&i(`/notes/${encodeURIComponent(e.post.id)}`);break}};return c&&T(c)?t.jsx(z,{errorCode:c.code,statusCode:c.statusCode}):t.jsx(S,{children:t.jsxs("div",{className:"z-0 flex w-full flex-col items-center",children:[b===!1&&k.length===0&&t.jsxs(M,{children:[t.jsx(P,{children:t.jsx(U,{})}),"Quiet for now, but not for long! When someone likes, boosts, or replies to you, you'll find it here."]}),k.length>0&&t.jsxs(t.Fragment,{children:[t.jsx("div",{className:"my-8 flex w-full max-w-[620px] flex-col max-md:mt-5",children:k.map((e,d)=>t.jsxs(u.Fragment,{children:[t.jsxs(h,{centerAlign:e.actors.length<2&&e.type==="follow",className:"hover:bg-gray-75 dark:hover:bg-gray-950",isGrouped:e.actors.length>1,onClick:()=>R(e,d),children:[b?t.jsx(w,{className:"rounded-full",containerClassName:"flex h-10 w-10"}):e.actors.length>1?t.jsx(h.Icon,{type:e.type}):t.jsxs("div",{className:"relative",children:[t.jsx($,{author:{icon:{url:e.actors[0].avatarUrl||""},name:e.actors[0].name,handle:e.actors[0].handle},size:"notification"},e.actors[0].id),t.jsx(I,{className:"absolute -bottom-1 -right-1 z-10 border-2 border-white dark:border-black",notificationType:e.type,size:"sm"})]}),e.actors.length>1&&t.jsx(h.Avatars,{children:t.jsxs("div",{className:"flex w-full flex-col",children:[t.jsxs("div",{className:"relative flex items-center pl-2",children:[!a[e.id||`${e.type}_${d}`]&&e.actors.slice(0,n).map(m=>t.jsx($,{author:{icon:{url:m.avatarUrl||""},name:m.name,handle:m.handle},className:"-ml-2 !bg-[#F3F3F3] outline outline-2 outline-white group-hover:!bg-[#EDEEF0] group-hover:outline-gray-75 dark:outline-black group-hover:dark:outline-gray-950",size:"notification"},m.id)),e.actors.length>n&&!a[e.id||`${e.type}_${d}`]&&t.jsx("div",{className:"absolute right-[28px] z-10 flex size-9 items-center justify-center rounded-full bg-black/50 text-base font-semibold tracking-tightest text-white",children:`+${e.actors.length-n}`}),e.actors.length>1&&t.jsxs(B,{className:`group flex items-center gap-0.5 text-gray-700 hover:bg-transparent hover:text-black dark:text-gray-600 dark:hover:text-white ${a[e.id||`${e.type}_${d}`]?"ml-[-20px]":"ml-0 w-[28px]"}`,variant:"ghost",onClick:m=>{m?.stopPropagation(),r(e.id||`${e.type}_${d}`)},children:[t.jsx(L,{className:`${a[e.id||`${e.type}_${d}`]?"rotate-180":""}`,size:20,strokeWidth:1.5}),a[e.id||`${e.type}_${d}`]?"Hide":t.jsx("span",{className:"sr-only",children:"Show all"})]})]}),t.jsx("div",{className:`overflow-hidden transition-all duration-300 ease-in-out ${a[e.id||`${e.type}_${d}`]?"mb-2 max-h-[1384px] opacity-100":"max-h-0 opacity-0"}`,children:a[e.id||`${e.type}_${d}`]&&e.actors.length>1&&t.jsx("div",{className:"flex flex-col gap-2 pt-2",children:e.actors.map(m=>t.jsxs("div",{className:"group/item flex items-center justify-between gap-4 break-anywhere",onClick:F=>{F?.stopPropagation(),v(m.handle,i)},children:[t.jsxs("div",{className:"flex min-w-0 items-center",children:[t.jsx($,{author:{icon:{url:m.avatarUrl||""},name:m.name,handle:m.handle},size:"xs"}),t.jsx("span",{className:"ml-2 line-clamp-1 text-base font-semibold group-hover/item:underline dark:text-white",children:m.name}),t.jsx("span",{className:"ml-1 line-clamp-1 text-base text-gray-700 dark:text-gray-600",children:m.handle})]}),e.type==="follow"&&!m.followedByMe&&t.jsx(C,{following:!1,handle:m.handle,variant:"link"})]},m.id))})})]})}),t.jsxs(h.Content,{children:[t.jsx("div",{children:b?t.jsxs(t.Fragment,{children:[t.jsx(w,{}),t.jsx(w,{className:"w-full max-w-60"})]}):t.jsxs("div",{className:"flex justify-between",children:[t.jsxs("div",{className:"flex items-center gap-1",children:[t.jsx("span",{className:"truncate",children:t.jsx(ae,{group:e})}),e.actors.length<2&&t.jsxs(t.Fragment,{children:[t.jsx("span",{className:"mt-px text-[8px] text-gray-700 dark:text-gray-600",children:"•"}),t.jsx("span",{className:"mt-0.5 text-sm text-gray-700 dark:text-gray-600",children:W(e,!1)})]})]}),e.actors.length===1&&(e.type==="follow"||e.type==="reply"||e.type==="mention")&&!e.actors[0].followedByMe&&t.jsx(C,{following:!1,handle:e.actors[0].handle,variant:"link"})]})}),(e.type==="reply"&&e.inReplyTo||e.type==="mention"||e.type==="like"&&!e.post?.name&&e.post?.content||e.type==="repost"&&!e.post?.name&&e.post?.content)&&(e.type!=="reply"&&e.type!=="mention"?t.jsxs("div",{className:"ap-note-content mt-0.5 line-clamp-1 text-pretty text-sm text-gray-700 dark:text-gray-600",children:[e.post?.type==="article"&&e.post?.title&&t.jsxs(t.Fragment,{children:[e.post.title," — "]}),t.jsx("span",{dangerouslySetInnerHTML:{__html:_(e.post?.content||"")}})]}):t.jsx(t.Fragment,{children:t.jsxs("div",{className:"mt-2.5 rounded-md bg-gray-100 px-5 py-[14px] group-hover:bg-gray-200 dark:bg-gray-925/30 group-hover:dark:bg-black/40",children:[t.jsx(ne,{className:"ap-note-content text-pretty",content:e.post?.content||"",stripTags:["a"]}),e.post&&e.post.attachments&&e.post.attachments.length>0&&t.jsx("div",{className:"notification-attachments mb-1 [&_.attachment-gallery]:flex [&_.attachment-gallery]:flex-wrap [&_img]:aspect-square [&_img]:max-w-[calc(20%-6.4px)]",children:D({...e.post,type:"Note",attachment:e.post.attachments})})]})})),(e.type==="reply"&&e.post||e.type==="mention")&&t.jsx("div",{className:"mt-1.5",children:t.jsx(H,{actor:{...e.actors[0],icon:{url:e.actors[0].avatarUrl||""},id:e.actors[0].url,preferredUsername:e.actors[0].handle?.replace(/^@([^@]+)@.*$/,"$1")||"unknown"},buttonClassName:"hover:bg-gray-200",commentCount:e.post.replyCount||0,layout:"notification",likeCount:e.post.likeCount||0,object:{...e.post,liked:e.post.likedByMe,reposted:e.post.repostedByMe},repostCount:e.post.repostCount||0,onLikeClick:s})})]})]}),d<k.length-1&&t.jsx("div",{className:"pl-[52px]",children:t.jsx(ee,{})})]},e.id||`${e.type}_${d}`))}),t.jsx("div",{ref:N,className:"h-1"}),x&&t.jsx("div",{className:"-mt-4 mb-8 flex flex-col items-center justify-center space-y-4 text-center",children:t.jsx(O,{size:"md"})})]})]})})};export{oe as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{cT as wv,d2 as x0}from"./index-
|
|
1
|
+
import{cT as wv,d2 as x0}from"./index-CJU9a2PB.js";import{r as qv,a as Ev,b as R0,c as _0,d as A0,e as M0,f as Ae,g as L0,h as N0,i as $v,j as Sv,k as k0,l as F0,m as C0,n as D0,o as P0,p as U0}from"./_baseAssignValue-hsL6ItjC.js";function B0(e,i){for(var c=0;c<i.length;c++){const l=i[c];if(typeof l!="string"&&!Array.isArray(l)){for(const v in l)if(v!=="default"&&!(v in e)){const g=Object.getOwnPropertyDescriptor(l,v);g&&Object.defineProperty(e,v,g.get?g:{enumerable:!0,get:()=>l[v]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var ht,Ys;function j0(){if(Ys)return ht;Ys=1;var e=qv(),i=Ev(),c=Object.prototype,l=c.hasOwnProperty;function v(g,b,m){var O=g[b];(!(l.call(g,b)&&i(O,m))||m===void 0&&!(b in g))&&e(g,b,m)}return ht=v,ht}var vt,Js;function V0(){if(Js)return vt;Js=1;var e=j0(),i=qv();function c(l,v,g,b){var m=!g;g||(g={});for(var O=-1,C=v.length;++O<C;){var A=v[O],S=b?b(g[A],l[A],A,g,l):void 0;S===void 0&&(S=l[A]),m?i(g,A,S):e(g,A,S)}return g}return vt=c,vt}var mt,Xs;function H0(){if(Xs)return mt;Xs=1;function e(i){var c=[];if(i!=null)for(var l in Object(i))c.push(l);return c}return mt=e,mt}var yt,Qs;function Z0(){if(Qs)return yt;Qs=1;var e=R0(),i=_0(),c=H0(),l=Object.prototype,v=l.hasOwnProperty;function g(b){if(!e(b))return c(b);var m=i(b),O=[];for(var C in b)C=="constructor"&&(m||!v.call(b,C))||O.push(C);return O}return yt=g,yt}var pt,Ks;function W0(){if(Ks)return pt;Ks=1;var e=A0(),i=Z0(),c=M0();function l(v){return c(v)?e(v,!0):i(v)}return pt=l,pt}var gt,rf;function z0(){if(rf)return gt;rf=1;var e=Ae(),i=L0();function c(l){return i(e(l).toLowerCase())}return gt=c,gt}var bt,ef;function G0(){if(ef)return bt;ef=1;function e(i,c,l,v){var g=-1,b=i==null?0:i.length;for(v&&b&&(l=i[++g]);++g<b;)l=c(l,i[g],g,i);return l}return bt=e,bt}var wt,tf;function Iv(){if(tf)return wt;tf=1;function e(i){return function(c){return i?.[c]}}return wt=e,wt}var qt,nf;function Y0(){if(nf)return qt;nf=1;var e=Iv(),i={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},c=e(i);return qt=c,qt}var Et,af;function J0(){if(af)return Et;af=1;var e=Y0(),i=Ae(),c=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,l="\\u0300-\\u036f",v="\\ufe20-\\ufe2f",g="\\u20d0-\\u20ff",b=l+v+g,m="["+b+"]",O=RegExp(m,"g");function C(A){return A=i(A),A&&A.replace(c,e).replace(O,"")}return Et=C,Et}var $t,uf;function X0(){if(uf)return $t;uf=1;var e=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function i(c){return c.match(e)||[]}return $t=i,$t}var St,of;function Q0(){if(of)return St;of=1;var e=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function i(c){return e.test(c)}return St=i,St}var It,sf;function K0(){if(sf)return It;sf=1;var e="\\ud800-\\udfff",i="\\u0300-\\u036f",c="\\ufe20-\\ufe2f",l="\\u20d0-\\u20ff",v=i+c+l,g="\\u2700-\\u27bf",b="a-z\\xdf-\\xf6\\xf8-\\xff",m="\\xac\\xb1\\xd7\\xf7",O="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",C="\\u2000-\\u206f",A=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",S="A-Z\\xc0-\\xd6\\xd8-\\xde",T="\\ufe0e\\ufe0f",w=m+O+C+A,F="['’]",_="["+w+"]",D="["+v+"]",M="\\d+",B="["+g+"]",j="["+b+"]",U="[^"+e+w+M+g+b+S+"]",R="\\ud83c[\\udffb-\\udfff]",X="(?:"+D+"|"+R+")",H="[^"+e+"]",Z="(?:\\ud83c[\\udde6-\\uddff]){2}",Q="[\\ud800-\\udbff][\\udc00-\\udfff]",pr="["+S+"]",or="\\u200d",Er="(?:"+j+"|"+U+")",fr="(?:"+pr+"|"+U+")",br="(?:"+F+"(?:d|ll|m|re|s|t|ve))?",sr="(?:"+F+"(?:D|LL|M|RE|S|T|VE))?",Mr=X+"?",cr="["+T+"]?",Vr="(?:"+or+"(?:"+[H,Z,Q].join("|")+")"+cr+Mr+")*",Hr="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",xr="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",tr=cr+Mr+Vr,dr="(?:"+[B,Z,Q].join("|")+")"+tr,Lr=RegExp([pr+"?"+j+"+"+br+"(?="+[_,pr,"$"].join("|")+")",fr+"+"+sr+"(?="+[_,pr+Er,"$"].join("|")+")",pr+"?"+Er+"+"+br,pr+"+"+sr,xr,Hr,M,dr].join("|"),"g");function Tr(Zr){return Zr.match(Lr)||[]}return It=Tr,It}var Tt,ff;function rp(){if(ff)return Tt;ff=1;var e=X0(),i=Q0(),c=Ae(),l=K0();function v(g,b,m){return g=c(g),b=m?void 0:b,b===void 0?i(g)?l(g):e(g):g.match(b)||[]}return Tt=v,Tt}var Ot,lf;function Tv(){if(lf)return Ot;lf=1;var e=G0(),i=J0(),c=rp(),l="['’]",v=RegExp(l,"g");function g(b){return function(m){return e(c(i(m).replace(v,"")),b,"")}}return Ot=g,Ot}var xt,cf;function ep(){if(cf)return xt;cf=1;var e=z0(),i=Tv(),c=i(function(l,v,g){return v=v.toLowerCase(),l+(g?e(v):v)});return xt=c,xt}var Rt,df;function tp(){if(df)return Rt;df=1;var e=Object.prototype,i=e.hasOwnProperty;function c(l,v){return l!=null&&i.call(l,v)}return Rt=c,Rt}var _t,hf;function np(){if(hf)return _t;hf=1;var e=tp(),i=N0();function c(l,v){return l!=null&&i(l,v,e)}return _t=c,_t}let Be;const ip=new Uint8Array(16);function ap(){if(!Be&&(Be=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!Be))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return Be(ip)}const wr=[];for(let e=0;e<256;++e)wr.push((e+256).toString(16).slice(1));function up(e,i=0){return wr[e[i+0]]+wr[e[i+1]]+wr[e[i+2]]+wr[e[i+3]]+"-"+wr[e[i+4]]+wr[e[i+5]]+"-"+wr[e[i+6]]+wr[e[i+7]]+"-"+wr[e[i+8]]+wr[e[i+9]]+"-"+wr[e[i+10]]+wr[e[i+11]]+wr[e[i+12]]+wr[e[i+13]]+wr[e[i+14]]+wr[e[i+15]]}let vf,At,Mt=0,Lt=0;function op(e,i,c){let l=0;const v=new Array(16);e=e||{};let g=e.node||vf,b=e.clockseq!==void 0?e.clockseq:At;if(g==null||b==null){const T=e.random||(e.rng||ap)();g==null&&(g=vf=[T[0]|1,T[1],T[2],T[3],T[4],T[5]]),b==null&&(b=At=(T[6]<<8|T[7])&16383)}let m=e.msecs!==void 0?e.msecs:Date.now(),O=e.nsecs!==void 0?e.nsecs:Lt+1;const C=m-Mt+(O-Lt)/1e4;if(C<0&&e.clockseq===void 0&&(b=b+1&16383),(C<0||m>Mt)&&e.nsecs===void 0&&(O=0),O>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");Mt=m,Lt=O,At=b,m+=122192928e5;const A=((m&268435455)*1e4+O)%4294967296;v[l++]=A>>>24&255,v[l++]=A>>>16&255,v[l++]=A>>>8&255,v[l++]=A&255;const S=m/4294967296*1e4&268435455;v[l++]=S>>>8&255,v[l++]=S&255,v[l++]=S>>>24&15|16,v[l++]=S>>>16&255,v[l++]=b>>>8|128,v[l++]=b&255;for(let T=0;T<6;++T)v[l+T]=g[T];return i||up(v)}function sp(e,i){const c=(e.stack?.split(/\n/g)||[])[1],[l,...v]=i.stack?.split(/\n/g)||[];return[l,c,...v].join(`
|
|
2
2
|
`)}var fp=Object.defineProperty,lp=(e,i,c)=>i in e?fp(e,i,{enumerable:!0,configurable:!0,writable:!0,value:c}):e[i]=c,Dr=(e,i,c)=>(lp(e,typeof i!="symbol"?i+"":i,c),c);class rr extends Error{constructor(i={}){super(),Dr(this,"statusCode"),Dr(this,"errorType"),Dr(this,"level"),Dr(this,"id"),Dr(this,"context"),Dr(this,"help"),Dr(this,"errorDetails"),Dr(this,"code"),Dr(this,"property"),Dr(this,"redirect"),Dr(this,"hideStack"),this.statusCode=500,this.errorType="InternalServerError",this.level="normal",this.message="The server has encountered an error.",this.id=op(),this.id=i.id||this.id,this.statusCode=i.statusCode||this.statusCode,this.level=i.level||this.level,this.context=i.context,this.help=i.help,this.errorType=this.name=i.errorType||this.errorType,this.errorDetails=i.errorDetails,this.code=i.code||null,this.property=i.property||null,this.redirect=i.redirect||null,this.message=i.message||this.message,this.hideStack=i.hideStack||!1,i.err&&(typeof i.err=="string"&&(i.err=new Error(i.err)),Object.getOwnPropertyNames(i.err).forEach(c=>{if(["errorType","name","statusCode","message","level"].indexOf(c)===-1){if(c==="code"){this[c]=this[c]||i.err[c];return}if(c==="stack"&&!this.hideStack){this[c]=sp(this,i.err);return}this[c]=i.err[c]||this[c]}}))}}const nr=(e,i)=>{const c={...i};return Object.keys(e).forEach(l=>{e[l]!==void 0&&(c[l]=e[l])}),c};class ge extends rr{constructor(i={}){super(nr(i,{statusCode:500,level:"critical",errorType:"InternalServerError",message:"The server has encountered an error."}))}}class Ov extends rr{constructor(i={}){super(nr(i,{statusCode:400,level:"critical",errorType:"IncorrectUsageError",message:"We detected a misuse. Please read the stack trace."}))}}class xv extends rr{constructor(i={}){super(nr(i,{statusCode:404,errorType:"NotFoundError",message:"Resource could not be found.",hideStack:!0}))}}class Co extends rr{constructor(i={}){super(nr(i,{statusCode:400,errorType:"BadRequestError",message:"The request could not be understood."}))}}class Rv extends rr{constructor(i={}){super(nr(i,{statusCode:401,errorType:"UnauthorizedError",message:"You are not authorised to make this request."}))}}class Do extends rr{constructor(i={}){super(nr(i,{statusCode:403,errorType:"NoPermissionError",message:"You do not have permission to perform this request."}))}}class Po extends rr{constructor(i={}){super(nr(i,{statusCode:422,errorType:"ValidationError",message:"The request failed validation."}))}}class _v extends rr{constructor(i={}){super(nr(i,{statusCode:415,errorType:"UnsupportedMediaTypeError",message:"The media in the request is not supported by the server."}))}}class Av extends rr{constructor(i={}){super(nr(i,{statusCode:429,errorType:"TooManyRequestsError",message:"Server has received too many similar requests in a short space of time."}))}}class Uo extends rr{constructor(i={}){super(nr(i,{statusCode:503,errorType:"MaintenanceError",message:"The server is temporarily down for maintenance."}))}}class Mv extends rr{constructor(i={}){super(nr(i,{statusCode:405,errorType:"MethodNotAllowedError",message:"Method not allowed for resource."}))}}class Lv extends rr{constructor(i={}){super(nr(i,{statusCode:406,errorType:"RequestNotAcceptableError",message:"Request not acceptable for provided Accept-Version header.",hideStack:!0}))}}class Nv extends rr{constructor(i={}){super(nr(i,{statusCode:416,errorType:"RangeNotSatisfiableError",message:"Range not satisfiable for provided Range header.",hideStack:!0}))}}class kv extends rr{constructor(i={}){super(nr(i,{statusCode:413,errorType:"RequestEntityTooLargeError",message:"Request was too big for the server to handle."}))}}class Fv extends rr{constructor(i={}){super(nr(i,{statusCode:503,errorType:"TokenRevocationError",message:"Token is no longer available."}))}}class Cv extends rr{constructor(i={}){super(nr(i,{statusCode:400,errorType:"VersionMismatchError",message:"Requested version does not match server version."}))}}class Dv extends rr{constructor(i={}){super(nr(i,{statusCode:500,errorType:"DataExportError",message:"The server encountered an error whilst exporting data."}))}}class Pv extends rr{constructor(i={}){super(nr(i,{statusCode:500,errorType:"DataImportError",message:"The server encountered an error whilst importing data."}))}}class Uv extends rr{constructor(i={}){super(nr(i,{statusCode:500,errorType:"EmailError",message:"The server encountered an error whilst sending email."}))}}class Bv extends rr{constructor(i={}){super(nr(i,{statusCode:422,errorType:"ThemeValidationError",message:"The theme has a validation error.",errorDetails:{}}))}}class jv extends rr{constructor(i={}){super(nr(i,{statusCode:409,errorType:"DisabledFeatureError",message:"Unable to complete the request, this feature is disabled."}))}}class Vv extends rr{constructor(i={}){super(nr(i,{statusCode:409,errorType:"UpdateCollisionError",message:"Unable to complete the request, there was a conflict."}))}}class Hv extends rr{constructor(i={}){super(nr(i,{errorType:"HostLimitError",hideStack:!0,statusCode:403,message:"Unable to complete the request, this resource is limited."}))}}class Zv extends rr{constructor(i={}){super(nr(i,{errorType:"HelperWarning",hideStack:!0,statusCode:400,message:"A theme helper has done something unexpected."}))}}class Wv extends rr{constructor(i={}){super(nr(i,{errorType:"PasswordResetRequiredError",statusCode:401,message:"For security, you need to create a new password. An email has been sent to you with instructions!"}))}}class zv extends rr{constructor(i={}){super(nr(i,{errorType:"UnhandledJobError",message:"Processed job threw an unhandled error",level:"critical"}))}}class Gv extends rr{constructor(i={}){super(nr(i,{errorType:"NoContentError",statusCode:204,hideStack:!0}))}}class Yv extends rr{constructor(i={}){super(nr(i,{errorType:"ConflictError",statusCode:409,message:"The server has encountered an conflict."}))}}class Jv extends rr{constructor(i={}){super(nr(i,{errorType:"MigrationError",message:"An error has occurred applying a database migration.",level:"critical"}))}}const Xv=Object.freeze(Object.defineProperty({__proto__:null,BadRequestError:Co,ConflictError:Yv,DataExportError:Dv,DataImportError:Pv,DisabledFeatureError:jv,EmailError:Uv,HelperWarning:Zv,HostLimitError:Hv,IncorrectUsageError:Ov,InternalServerError:ge,MaintenanceError:Uo,MethodNotAllowedError:Mv,MigrationError:Jv,NoContentError:Gv,NoPermissionError:Do,NotFoundError:xv,PasswordResetRequiredError:Wv,RangeNotSatisfiableError:Nv,RequestEntityTooLargeError:kv,RequestNotAcceptableError:Lv,ThemeValidationError:Bv,TokenRevocationError:Fv,TooManyRequestsError:Av,UnauthorizedError:Rv,UnhandledJobError:zv,UnsupportedMediaTypeError:_v,UpdateCollisionError:Vv,ValidationError:Po,VersionMismatchError:Cv},Symbol.toStringTag,{value:"Module"}));/**
|
|
3
3
|
* @license Apache-2.0
|
|
4
4
|
*
|