tangled
alpha
login
or
join now
leaflet.pub
/
leaflet
289
fork
atom
a tool for shared writing and social publishing
289
fork
atom
overview
issues
27
pulls
pipelines
add unsubscribe flow!
awarm.space
11 months ago
03c07218
8bfe7446
+13
-5
2 changed files
expand all
collapse all
unified
split
actions
subscribeToPublicationWithEmail.ts
app
lish
[handle]
[publication]
CallToActionButton.tsx
-2
actions/subscribeToPublicationWithEmail.ts
···
4
5
export async function subscribeToPublicationWithEmail(publication: string) {
6
let identity = await getIdentityData();
7
-
console.log("yoohooo");
8
-
console.log(identity);
9
if (!identity || !identity.email) return null;
10
//This is an email relation!!
11
console.log(
···
4
5
export async function subscribeToPublicationWithEmail(publication: string) {
6
let identity = await getIdentityData();
0
0
7
if (!identity || !identity.email) return null;
8
//This is an email relation!!
9
console.log(
+13
-3
app/lish/[handle]/[publication]/CallToActionButton.tsx
···
6
import { NewDraftButton } from "./NewDraftButton";
7
import { Menu, MenuItem } from "components/Layout";
8
import { ArrowRightTiny, MoreOptionsTiny, ShareSmall } from "components/Icons";
0
0
9
10
export function CallToActionButton() {
11
let rel = usePublicationRelationship();
···
16
return (
17
<div className="flex gap-2">
18
<div className="font-bold">You're Subscribed!</div>
19
-
<ManageSubscriptionMenu />
20
</div>
21
);
22
return <SubscribeButton publication={publication.uri} />;
23
}
24
25
-
const ManageSubscriptionMenu = () => {
0
26
return (
27
<Menu trigger={<MoreOptionsTiny className="rotate-90" />}>
28
-
<MenuItem onSelect={() => {}}>Unsub!</MenuItem>
0
0
0
0
0
0
0
29
</Menu>
30
);
31
};
···
6
import { NewDraftButton } from "./NewDraftButton";
7
import { Menu, MenuItem } from "components/Layout";
8
import { ArrowRightTiny, MoreOptionsTiny, ShareSmall } from "components/Icons";
9
+
import { useIdentityData } from "components/IdentityProvider";
10
+
import { unsubscribeFromPublication } from "actions/unsubscribeFromPubliction";
11
12
export function CallToActionButton() {
13
let rel = usePublicationRelationship();
···
18
return (
19
<div className="flex gap-2">
20
<div className="font-bold">You're Subscribed!</div>
21
+
<ManageSubscriptionMenu publication_uri={publication.uri} />
22
</div>
23
);
24
return <SubscribeButton publication={publication.uri} />;
25
}
26
27
+
const ManageSubscriptionMenu = (props: { publication_uri: string }) => {
28
+
let { mutate } = useIdentityData();
29
return (
30
<Menu trigger={<MoreOptionsTiny className="rotate-90" />}>
31
+
<MenuItem
32
+
onSelect={async () => {
33
+
await unsubscribeFromPublication(props.publication_uri);
34
+
mutate();
35
+
}}
36
+
>
37
+
Unsub!
38
+
</MenuItem>
39
</Menu>
40
);
41
};