diff --git a/app/lish/[did]/[publication]/dashboard/Actions.tsx b/app/lish/[did]/[publication]/dashboard/Actions.tsx
index 94f934d6..350efc33 100644
--- a/app/lish/[did]/[publication]/dashboard/Actions.tsx
+++ b/app/lish/[did]/[publication]/dashboard/Actions.tsx
@@ -12,12 +12,14 @@ import { useSmoker } from "components/Toast";
import { useIsMobile } from "src/hooks/isMobile";
import { SpeedyLink } from "components/SpeedyLink";
-export const Actions = (props: { publication: string }) => {
+export const Actions = (props: { publication: string; isOwner: boolean }) => {
return (
<>
-
+ {props.isOwner && (
+
+ )}
>
);
};
diff --git a/app/lish/[did]/[publication]/dashboard/DraftList.tsx b/app/lish/[did]/[publication]/dashboard/DraftList.tsx
index fadce76f..d8a261cd 100644
--- a/app/lish/[did]/[publication]/dashboard/DraftList.tsx
+++ b/app/lish/[did]/[publication]/dashboard/DraftList.tsx
@@ -4,14 +4,22 @@ import { NewDraftSecondaryButton } from "./NewDraftButton";
import React from "react";
import { usePublicationData } from "./PublicationSWRProvider";
import { LeafletList } from "app/(home-pages)/home/HomeLayout";
+import { useIdentityData } from "components/IdentityProvider";
export function DraftList(props: {
searchValue: string;
showPageBackground: boolean;
+ isOwner: boolean;
}) {
+ let identity = useIdentityData();
+ let userLeaflets = identity.identity?.permission_token_on_homepage
+ .flatMap((leaflet) => leaflet.permission_tokens.leaflets_in_publications)
+ .map((leaflet) => leaflet.doc);
+
let { data: pub_data } = usePublicationData();
if (!pub_data?.publication) return null;
let { leaflets_in_publications, ...publication } = pub_data.publication;
+
return (
!l.documents)
+ .filter((l) => {
+ if (l.documents) return false;
+ if (!props.isOwner) {
+ return !!userLeaflets?.includes(l.doc);
+ }
+ return true;
+ })
.map((l) => {
return {
token: {
diff --git a/app/lish/[did]/[publication]/dashboard/PublicationDashboard.tsx b/app/lish/[did]/[publication]/dashboard/PublicationDashboard.tsx
index a5524c70..69a370cb 100644
--- a/app/lish/[did]/[publication]/dashboard/PublicationDashboard.tsx
+++ b/app/lish/[did]/[publication]/dashboard/PublicationDashboard.tsx
@@ -14,6 +14,7 @@ import {
PublicationDashboardControls,
} from "components/PageLayouts/DashboardLayout";
import { useDebouncedEffect } from "src/hooks/useDebouncedEffect";
+import { getIdentityData } from "actions/getIdentityData";
export default function PublicationDashboard({
publication,
@@ -36,6 +37,8 @@ export default function PublicationDashboard({
[searchValue],
);
+ let isOwner = false;
+
return (
),
controls: (
@@ -63,20 +67,25 @@ export default function PublicationDashboard({
),
controls: null,
},
- Subscribers: {
- content: (
-
- ),
- controls: null,
- },
+ ...(isOwner
+ ? {
+ Subscribers: {
+ content: (
+
+ ),
+ controls: null,
+ },
+ }
+ : {}),
}}
- actions={}
+ actions={}
currentPage="pub"
publication={publication.uri}
/>
diff --git a/app/lish/[did]/[publication]/dashboard/PublishedPostsLists.tsx b/app/lish/[did]/[publication]/dashboard/PublishedPostsLists.tsx
index 3d998853..89a2e45f 100644
--- a/app/lish/[did]/[publication]/dashboard/PublishedPostsLists.tsx
+++ b/app/lish/[did]/[publication]/dashboard/PublishedPostsLists.tsx
@@ -18,13 +18,15 @@ import { SpeedyLink } from "components/SpeedyLink";
import { QuoteTiny } from "components/Icons/QuoteTiny";
import { CommentTiny } from "components/Icons/CommentTiny";
import { useLocalizedDate } from "src/hooks/useLocalizedDate";
+import { useIdentityData } from "components/IdentityProvider";
export function PublishedPostsList(props: {
searchValue: string;
showPageBackground: boolean;
+ isOwner: boolean;
}) {
let { data } = usePublicationData();
- let params = useParams();
+ let identity = useIdentityData();
let { publication } = data!;
if (!publication) return null;
if (publication.documents_in_publications.length === 0)
@@ -56,7 +58,7 @@ export function PublishedPostsList(props: {
let record = doc.documents.data as PubLeafletDocument.Record;
let quotes = doc.documents.document_mentions_in_bsky[0]?.count || 0;
let comments = doc.documents.comments_on_documents[0]?.count || 0;
-
+ let isAuthor = record.author === identity.identity?.atp_did;
return (
@@ -78,17 +80,18 @@ export function PublishedPostsList(props: {
{record.title}
-
- {leaflet && (
+ {leaflet && (isAuthor || props.isOwner) && (
+
- )}
-
-
+
+
+
+ )}
{record.description ? (
@@ -237,9 +240,5 @@ function PublishedDate(props: { dateString: string }) {
day: "2-digit",
});
- return (
-
- Published {formattedDate}
-
- );
+ return Published {formattedDate}
;
}
diff --git a/app/lish/[did]/[publication]/invite-contributor/page.tsx b/app/lish/[did]/[publication]/invite-contributor/page.tsx
index 5328c92d..04557915 100644
--- a/app/lish/[did]/[publication]/invite-contributor/page.tsx
+++ b/app/lish/[did]/[publication]/invite-contributor/page.tsx
@@ -1,4 +1,3 @@
-import { BskyAgent } from "@atproto/api";
import { AtUri } from "@atproto/syntax";
import {
PublicationThemeProvider,
@@ -7,10 +6,8 @@ import {
import { PubLeafletPublication } from "lexicons/api";
import { supabaseServerClient } from "supabase/serverClient";
import { ButtonPrimary } from "components/Buttons";
-import { PubContributorEmptyIllo } from "../dashboard/publicationSettings/PublicationContributors";
import { PubNotFound } from "../PubNotFound";
import { PubIcon } from "components/ActionBar/Publications";
-import { PubListing } from "app/(home-pages)/discover/PubListing";
import { SpeedyLink } from "components/SpeedyLink";
import { BlueskyLogin } from "app/login/LoginForm";
import { getIdentityData } from "actions/getIdentityData";