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
28
pulls
pipelines
messing around with navigation on mobile
cozylittle.house
1 month ago
12b52565
8e8e61c4
+205
-108
8 changed files
expand all
collapse all
unified
split
app
(home-pages)
home
Actions
Actions.tsx
components
ActionBar
ActionButton.tsx
DesktopNavigation.tsx
MobileNavigation.tsx
NavigationButtons.tsx
Publications.tsx
Icons
ReaderSmall.tsx
WriterSmall.tsx
+1
-5
app/(home-pages)/home/Actions/Actions.tsx
···
13
13
return (
14
14
<>
15
15
<CreateNewLeafletButton />
16
16
-
{identity ? (
17
17
-
<AccountSettings entityID={rootEntity} />
18
18
-
) : (
19
19
-
<LoginActionButton />
20
20
-
)}
16
16
+
{identity && <AccountSettings entityID={rootEntity} />}
21
17
</>
22
18
);
23
19
};
+3
-2
components/ActionBar/ActionButton.tsx
···
62
62
: secondary
63
63
? " bg-bg-page border-accent-contrast text-accent-contrast transparent-outline focus:outline-accent-contrast sm:hover:outline-accent-contrast outline-offset-1 mx-1 first:ml-0"
64
64
: nav
65
65
-
? "border-transparent text-secondary sm:hover:border-border justify-start!"
65
65
+
? "border-transparent text-secondary sm:hover:border-border justify-start! max-w-full"
66
66
: "border-transparent text-accent-contrast sm:hover:border-accent-contrast"
67
67
}
68
68
${className}
69
69
`}
70
70
+
style={nav ? { width: "-webkit-fill-available" } : {}}
70
71
>
71
71
-
<div className="shrink-0">{icon}</div>
72
72
+
<div className="shrink-0 flex flex-row gap-0.5">{icon}</div>
72
73
<div
73
74
className={`flex flex-col pr-1 ${subtext && "leading-snug"} max-w-full min-w-0 ${sidebar.open ? "block" : showLabelOnMobile ? "sm:hidden block" : "hidden"}`}
74
75
>
+25
-9
components/ActionBar/DesktopNavigation.tsx
···
4
4
HomeButton,
5
5
ReaderButton,
6
6
NotificationButton,
7
7
+
WriterButton,
7
8
} from "./NavigationButtons";
8
9
import { PublicationButtons } from "./Publications";
9
10
import { Sidebar } from "./Sidebar";
···
16
17
let thisPublication = identity?.publications?.find(
17
18
(pub) => pub.uri === props.publication,
18
19
);
20
20
+
21
21
+
let currentlyWriter =
22
22
+
props.currentPage === "home" ||
23
23
+
props.currentPage === "looseleafs" ||
24
24
+
props.currentPage === "pub";
19
25
return (
20
26
<div className="flex flex-col gap-3">
27
27
+
{identity?.atp_did && (
28
28
+
<Sidebar alwaysOpen>
29
29
+
<NotificationButton current={props.currentPage === "notifications"} />
30
30
+
</Sidebar>
31
31
+
)}
21
32
<Sidebar alwaysOpen>
22
22
-
<HomeButton current={props.currentPage === "home"} />
23
33
<ReaderButton
24
34
current={props.currentPage === "reader"}
25
35
subs={
···
27
37
identity?.publication_subscriptions?.length !== undefined
28
38
}
29
39
/>
30
30
-
{identity?.atp_did && (
31
31
-
<NotificationButton current={props.currentPage === "notifications"} />
40
40
+
{currentlyWriter ? (
41
41
+
<>
42
42
+
<HomeButton current={props.currentPage === "home"} />
43
43
+
<hr className="border-border-light border-dashed" />
44
44
+
<PublicationButtons
45
45
+
currentPage={props.currentPage}
46
46
+
currentPubUri={thisPublication?.uri}
47
47
+
/>
48
48
+
</>
49
49
+
) : (
50
50
+
<WriterButton
51
51
+
currentPage={props.currentPage}
52
52
+
currentPubUri={thisPublication?.uri}
53
53
+
/>
32
54
)}
33
33
-
</Sidebar>
34
34
-
<Sidebar alwaysOpen>
35
35
-
<PublicationButtons
36
36
-
currentPage={props.currentPage}
37
37
-
currentPubUri={thisPublication?.uri}
38
38
-
/>
39
55
</Sidebar>
40
56
</div>
41
57
);
+25
-85
components/ActionBar/MobileNavigation.tsx
···
7
7
navPages,
8
8
NotificationButton,
9
9
ReaderButton,
10
10
+
WriterButton,
10
11
} from "./NavigationButtons";
11
12
import { PubIcon, PublicationButtons } from "./Publications";
12
13
import { HomeSmall } from "components/Icons/HomeSmall";
···
20
21
import { TagSmall } from "components/Icons/TagSmall";
21
22
import { Avatar } from "components/Avatar";
22
23
import { useProfileFromDid } from "src/utils/getRecordFromDid";
24
24
+
import { LoginActionButton } from "components/LoginButton";
23
25
24
26
export const MobileNavigation = (props: {
25
27
currentPage: navPages;
···
27
29
currentProfileDid?: string;
28
30
}) => {
29
31
let { identity } = useIdentityData();
30
30
-
let thisPublication = identity?.publications?.find(
31
31
-
(pub) => pub.uri === props.currentPublicationUri,
32
32
-
);
32
32
+
33
33
+
let compactOnMobile =
34
34
+
props.currentPage === "home" ||
35
35
+
props.currentPage === "looseleafs" ||
36
36
+
props.currentPage === "pub"
37
37
+
? false
38
38
+
: true;
39
39
+
33
40
return (
34
34
-
<div className="mobileNav flex gap-1 items-center text-secondary ">
35
35
-
<Popover
36
36
-
onOpenAutoFocus={(e) => e.preventDefault()}
37
37
-
asChild
38
38
-
className="px-2! !max-w-[256px]"
39
39
-
trigger={
40
40
-
<div className="shrink-0 p-1 h-full flex gap-1 font-bold items-center text-secondary">
41
41
-
<MenuSmall />
42
42
-
43
43
-
<CurrentPageIcon
44
44
-
currentPage={props.currentPage}
45
45
-
currentPubUri={thisPublication?.uri}
46
46
-
currentProfileDid={props.currentProfileDid}
47
47
-
/>
48
48
-
</div>
49
49
-
}
50
50
-
>
51
51
-
<HomeButton current={props.currentPage === "home"} />
41
41
+
<div
42
42
+
className={`mobileNav flex justify-between gap-1 items-center text-secondary pl-1 ${compactOnMobile ? "w-full" : "w-fit"}`}
43
43
+
>
44
44
+
<div className="flex gap-2">
45
45
+
<WriterButton
46
46
+
compactOnMobile={compactOnMobile}
47
47
+
currentPage={props.currentPage}
48
48
+
currentPubUri={props.currentPublicationUri}
49
49
+
/>
52
50
<ReaderButton
51
51
+
compactOnMobile={compactOnMobile}
53
52
current={props.currentPage === "reader"}
54
53
subs={
55
54
identity?.publication_subscriptions?.length !== 0 &&
56
55
identity?.publication_subscriptions?.length !== undefined
57
56
}
58
57
/>
59
59
-
<hr className="my-1 border-border-light" />
60
60
-
<PublicationButtons
61
61
-
currentPage={props.currentPage}
62
62
-
currentPubUri={thisPublication?.uri}
63
63
-
/>
64
64
-
</Popover>
65
65
-
{identity?.atp_did && (
58
58
+
</div>
59
59
+
{identity?.atp_did ? (
66
60
<>
67
67
-
<Separator classname="h-6!" />
61
61
+
{!compactOnMobile && <Separator />}
68
62
<NotificationButton />
69
63
</>
64
64
+
) : (
65
65
+
<LoginActionButton />
70
66
)}
71
67
</div>
72
68
);
73
69
};
74
74
-
75
75
-
const CurrentPageIcon = (props: {
76
76
-
currentPage: navPages;
77
77
-
currentPubUri?: string;
78
78
-
currentProfileDid?: string;
79
79
-
}) => {
80
80
-
let { identity } = useIdentityData();
81
81
-
let currentPub = identity?.publications?.find(
82
82
-
(pub) => pub.uri === props.currentPubUri,
83
83
-
);
84
84
-
let pubRecord = currentPub
85
85
-
? normalizePublicationRecord(currentPub.record)
86
86
-
: null;
87
87
-
let unreads = identity?.notifications[0]?.count;
88
88
-
89
89
-
const { data: profile } = useProfileFromDid(
90
90
-
props.currentPage === "profile" ? props.currentProfileDid : undefined,
91
91
-
);
92
92
-
93
93
-
switch (props.currentPage) {
94
94
-
case "home":
95
95
-
return <HomeSmall />;
96
96
-
case "reader":
97
97
-
return <ReaderReadSmall />;
98
98
-
case "profile":
99
99
-
if (profile) {
100
100
-
return (
101
101
-
<Avatar
102
102
-
src={profile.avatar}
103
103
-
displayName={profile.displayName}
104
104
-
size="medium"
105
105
-
/>
106
106
-
);
107
107
-
}
108
108
-
return <LooseLeafSmall />;
109
109
-
case "tag":
110
110
-
return <TagSmall />;
111
111
-
case "notifications":
112
112
-
if (unreads) {
113
113
-
return <NotificationsUnreadSmall className="text-accent-contrast" />;
114
114
-
} else {
115
115
-
return <NotificationsReadSmall />;
116
116
-
}
117
117
-
118
118
-
case "looseleafs":
119
119
-
return <LooseLeafSmall />;
120
120
-
121
121
-
case "pub":
122
122
-
if (currentPub && pubRecord) {
123
123
-
return <PubIcon record={pubRecord} uri={currentPub.uri} />;
124
124
-
}
125
125
-
return null;
126
126
-
default:
127
127
-
return null;
128
128
-
}
129
129
-
};
+127
-3
components/ActionBar/NavigationButtons.tsx
···
3
3
import { useIdentityData } from "components/IdentityProvider";
4
4
import Link from "next/link";
5
5
import { DiscoverSmall } from "components/Icons/DiscoverSmall";
6
6
-
import { PublicationButtons } from "./Publications";
6
6
+
import { PubIcon, PublicationButtons } from "./Publications";
7
7
import { ReaderUnreadSmall } from "components/Icons/ReaderSmall";
8
8
import {
9
9
NotificationsReadSmall,
10
10
NotificationsUnreadSmall,
11
11
} from "components/Icons/NotificationSmall";
12
12
import { SpeedyLink } from "components/SpeedyLink";
13
13
+
import { Popover } from "components/Popover";
14
14
+
import { WriterSmall } from "components/Icons/WriterSmall";
15
15
+
import { LooseLeafSmall } from "components/Icons/LooseleafSmall";
16
16
+
import { normalizePublicationRecord } from "src/utils/normalizeRecords";
17
17
+
import { theme } from "tailwind.config";
13
18
14
19
export type navPages =
15
20
| "home"
···
26
31
<ActionButton
27
32
nav
28
33
icon={<HomeSmall />}
29
29
-
label="Home"
34
34
+
label="Writer Home"
30
35
className={props.current ? "bg-bg-page! border-border-light!" : ""}
31
36
/>
32
37
</SpeedyLink>
33
38
);
34
39
};
35
40
36
36
-
export const ReaderButton = (props: { current?: boolean; subs: boolean }) => {
41
41
+
export const WriterButton = (props: {
42
42
+
currentPage: navPages;
43
43
+
currentPubUri?: string;
44
44
+
compactOnMobile?: boolean;
45
45
+
}) => {
46
46
+
let { identity } = useIdentityData();
47
47
+
48
48
+
let currentPub = identity?.publications?.find(
49
49
+
(pub) => pub.uri === props.currentPubUri,
50
50
+
);
51
51
+
let pubRecord = currentPub
52
52
+
? normalizePublicationRecord(currentPub.record)
53
53
+
: null;
54
54
+
55
55
+
let current =
56
56
+
props.currentPage === "home" ||
57
57
+
props.currentPage === "looseleafs" ||
58
58
+
props.currentPage === "pub";
59
59
+
console.log(current);
60
60
+
61
61
+
let currentPubIcon =
62
62
+
currentPub && pubRecord ? (
63
63
+
<PubIcon record={pubRecord} uri={currentPub.uri} />
64
64
+
) : null;
65
65
+
66
66
+
let currentIcon =
67
67
+
props.currentPage === "home" ? (
68
68
+
<HomeSmall className="text-tertiary" />
69
69
+
) : props.currentPage === "looseleafs" ? (
70
70
+
<LooseLeafSmall className="text-tertiary" />
71
71
+
) : props.currentPage === "pub" ? (
72
72
+
currentPubIcon
73
73
+
) : null;
74
74
+
75
75
+
return (
76
76
+
<Popover
77
77
+
className="p-2!"
78
78
+
asChild
79
79
+
trigger={
80
80
+
props.compactOnMobile ? (
81
81
+
<ActionButton
82
82
+
nav
83
83
+
labelOnMobile={true}
84
84
+
icon={<WriterSmall />}
85
85
+
label=<div className="flex flex-row gap-1">
86
86
+
Writer
87
87
+
{current && (
88
88
+
<>
89
89
+
<Divider /> {currentIcon}
90
90
+
</>
91
91
+
)}
92
92
+
</div>
93
93
+
className={current ? "bg-bg-page! border-border-light!" : ""}
94
94
+
/>
95
95
+
) : (
96
96
+
<ActionButton
97
97
+
nav
98
98
+
labelOnMobile={false}
99
99
+
icon={
100
100
+
<>
101
101
+
<WriterSmall />
102
102
+
{current && (
103
103
+
<>
104
104
+
<Divider /> {currentIcon}
105
105
+
</>
106
106
+
)}
107
107
+
</>
108
108
+
}
109
109
+
label=<div className="flex flex-row gap-1">Writer</div>
110
110
+
className={current ? "bg-bg-page! border-border-light!" : ""}
111
111
+
/>
112
112
+
)
113
113
+
}
114
114
+
>
115
115
+
<SpeedyLink href={"/home"} className="hover:!no-underline">
116
116
+
<ActionButton
117
117
+
nav
118
118
+
icon={<HomeSmall />}
119
119
+
label="Writer Home"
120
120
+
className={
121
121
+
props.currentPage === "home"
122
122
+
? "bg-bg-page! border-border-light!"
123
123
+
: ""
124
124
+
}
125
125
+
/>
126
126
+
</SpeedyLink>
127
127
+
<hr className="border-border-light border-dashed my-2" />
128
128
+
<PublicationButtons
129
129
+
currentPage={props.currentPage}
130
130
+
currentPubUri={props.currentPubUri}
131
131
+
/>
132
132
+
</Popover>
133
133
+
);
134
134
+
};
135
135
+
136
136
+
export const ReaderButton = (props: {
137
137
+
current?: boolean;
138
138
+
subs: boolean;
139
139
+
compactOnMobile?: boolean;
140
140
+
}) => {
37
141
if (!props.subs) return;
38
142
return (
39
143
<SpeedyLink href={"/reader"} className="hover:no-underline!">
40
144
<ActionButton
41
145
nav
146
146
+
labelOnMobile={props.compactOnMobile}
42
147
icon={<ReaderUnreadSmall />}
43
148
label="Reader"
44
149
className={props.current ? "bg-bg-page! border-border-light!" : ""}
···
69
174
</SpeedyLink>
70
175
);
71
176
}
177
177
+
178
178
+
const Divider = () => {
179
179
+
return (
180
180
+
<svg
181
181
+
width="6"
182
182
+
height="25"
183
183
+
viewBox="0 0 6 25"
184
184
+
fill="none"
185
185
+
xmlns="http://www.w3.org/2000/svg"
186
186
+
>
187
187
+
<path
188
188
+
d="M0.5 0.5V7.5L5 12.5L0.5 17.5L0.5 24.5"
189
189
+
stroke={theme.colors["border-light"]}
190
190
+
strokeLinecap="round"
191
191
+
strokeLinejoin="round"
192
192
+
/>
193
193
+
</svg>
194
194
+
);
195
195
+
};
+1
-1
components/ActionBar/Publications.tsx
···
19
19
import { useIsMobile } from "src/hooks/isMobile";
20
20
import { useState } from "react";
21
21
import { LooseLeafSmall } from "components/Icons/LooseleafSmall";
22
22
-
import { navPages } from "./NavigationButtons";
22
22
+
import type { navPages } from "./NavigationButtons";
23
23
24
24
export const PublicationButtons = (props: {
25
25
currentPage: navPages;
+4
-3
components/Icons/ReaderSmall.tsx
···
3
3
export const ReaderUnreadSmall = (props: Props) => {
4
4
return (
5
5
<svg
6
6
-
width="25"
6
6
+
width="24"
7
7
height="24"
8
8
-
viewBox="0 0 25 24"
8
8
+
viewBox="0 0 24 24"
9
9
fill="none"
10
10
xmlns="http://www.w3.org/2000/svg"
11
11
+
{...props}
11
12
>
12
13
<path
13
13
-
d="M2.82968 18.0472C2.82987 17.3641 3.41641 17.3642 3.41659 18.0472C3.41658 18.7307 3.7081 19.1528 3.80819 19.263C3.90827 19.3732 4.08109 19.7179 4.70468 19.7181C5.32851 19.7182 5.32851 20.3255 4.70468 20.3255C4.08111 20.3256 3.98225 20.5899 3.80819 20.7816C3.63417 20.9732 3.41859 21.2572 3.41854 21.9232C3.41854 22.5896 2.83163 22.6066 2.83163 21.9232C2.83155 21.2398 2.4633 20.8276 2.42147 20.7816C2.37905 20.735 1.94693 20.3255 1.45858 20.3255C0.97001 20.3254 0.974762 19.7182 1.45858 19.7181C1.9419 19.7181 2.25811 19.3644 2.35018 19.263C2.44176 19.1622 2.82968 18.7307 2.82968 18.0472ZM18.8189 13.7962C18.8191 13.1543 19.3158 13.1543 19.316 13.7962C19.316 14.4386 19.5624 14.8352 19.6471 14.9388C19.7317 15.0425 19.8778 15.3663 20.4049 15.3665C20.9325 15.3666 20.9325 15.9378 20.4049 15.9378C19.8775 15.9379 19.7943 16.1864 19.6471 16.3665C19.4999 16.5466 19.3171 16.8131 19.317 17.4388C19.317 18.0651 18.8209 18.0811 18.8209 17.4388C18.8207 16.7986 18.5111 16.4117 18.4742 16.3665C18.4388 16.3233 18.073 15.9381 17.6598 15.9378C17.2464 15.9378 17.2504 15.3665 17.6598 15.3665C18.0686 15.3663 18.336 15.0338 18.4137 14.9388C18.4911 14.844 18.8189 14.4386 18.8189 13.7962ZM6.10897 1.79134C6.74065 1.54967 7.31924 1.76772 7.73007 2.04427C8.13472 2.31686 8.48886 2.71494 8.77304 3.07649C9.05968 3.44125 9.32671 3.83827 9.52304 4.11653C9.76174 4.45493 9.68165 4.92361 9.34335 5.16243C9.0051 5.40111 8.53735 5.31974 8.29843 4.98177C8.07551 4.66583 7.84739 4.32673 7.59237 4.00227C7.33511 3.67506 7.09903 3.42822 6.89315 3.28938C6.79455 3.22296 6.72689 3.19837 6.69101 3.19075C6.66479 3.18528 6.65529 3.18881 6.64511 3.1927C6.60428 3.20859 6.40334 3.32114 6.13925 3.88899C6.01867 4.14843 5.71704 5.01402 5.35214 6.10677C5.27851 6.12987 5.22515 6.14661 5.21835 6.15462C5.21489 6.15884 5.21125 6.16214 5.20858 6.16536C4.91664 6.19308 4.63293 6.31734 4.41464 6.54427C4.17686 6.79162 4.06902 7.10768 4.06796 7.40462C4.067 7.70171 4.17276 8.02065 4.41268 8.27083C4.46886 8.32937 4.52964 8.38044 4.59335 8.42513C4.37591 9.09776 4.17095 9.74532 3.99765 10.2884C4.2707 10.3144 4.54179 10.3779 4.80038 10.4691C5.5814 10.7446 6.34697 11.3005 6.96933 12.0501C7.13971 11.9646 7.3231 11.9158 7.50936 11.8929C7.9461 11.8392 8.39353 11.9251 8.81893 12.1146C8.94078 11.5922 9.19242 11.1032 9.59433 10.6868C11.081 9.14683 13.6312 9.62241 15.2428 11.1781C15.3753 11.306 15.4999 11.4413 15.6178 11.5814C15.7723 11.0931 15.9613 10.4983 16.1588 9.87044C16.6539 8.29641 17.2076 6.52428 17.4498 5.71028C17.7531 4.69126 18.1848 3.91964 18.8023 3.49056C19.4769 3.02218 20.2194 3.06179 20.859 3.34017C21.4671 3.60494 22.0253 4.09649 22.5025 4.63802C22.9884 5.18942 23.4343 5.84393 23.8062 6.50032C24.0101 6.86052 23.884 7.31757 23.524 7.52181C23.1638 7.72592 22.7059 7.59954 22.5016 7.23958C22.1686 6.6521 21.7805 6.08653 21.3775 5.62923C20.9661 5.16239 20.5798 4.85528 20.2603 4.71614C19.9724 4.5908 19.8033 4.62119 19.6568 4.72298C19.4532 4.86476 19.1524 5.24367 18.8863 6.13802C18.6401 6.9656 18.0833 8.74963 17.5894 10.3197C17.3421 11.1061 17.1093 11.8418 16.9391 12.3802C16.854 12.6494 16.7853 12.87 16.7369 13.0228C16.7128 13.0988 16.6941 13.1581 16.6812 13.1986C16.6748 13.2188 16.6689 13.235 16.6656 13.2454C16.6641 13.2501 16.6625 13.2536 16.6617 13.2562V13.2591L16.6607 13.2601C16.6469 13.3038 16.6277 13.3449 16.607 13.3841C16.9766 14.5982 16.8251 15.8801 15.9322 16.805C14.4454 18.345 11.8953 17.8696 10.2838 16.3138C9.60418 15.6576 9.11137 14.8276 8.87948 13.972C8.47459 13.5525 8.06917 13.397 7.80429 13.3831C8.01717 13.8598 8.15284 14.345 8.19784 14.8138C8.28056 15.6775 8.06391 16.5969 7.33065 17.1702C6.59744 17.7433 5.65367 17.7322 4.83554 17.4437C4.00748 17.1515 3.19408 16.5464 2.55331 15.7269C1.91258 14.9074 1.52188 13.972 1.43808 13.098C1.35693 12.25 1.56474 11.3498 2.2662 10.7747C2.51811 9.97534 3.00684 8.4405 3.48983 6.96224C4.01662 5.34994 4.56587 3.71844 4.78085 3.25618C5.10348 2.56265 5.52293 2.01575 6.10897 1.79134ZM14.2008 12.2572C12.9082 11.0094 11.3496 11.0284 10.6734 11.7288C9.99762 12.4294 10.0335 13.987 11.3258 15.2347C12.6181 16.4823 14.1767 16.464 14.8531 15.764C15.5292 15.0636 15.4931 13.505 14.2008 12.2572ZM4.30233 11.8841C3.77284 11.6973 3.41998 11.7759 3.22909 11.9251C3.03847 12.0746 2.87871 12.3971 2.93222 12.9554C2.98485 13.5041 3.24331 14.1742 3.73495 14.8031C4.22664 15.4319 4.81476 15.8452 5.33456 16.0286C5.86353 16.2152 6.2159 16.1376 6.40683 15.9886C6.59761 15.8394 6.75812 15.5159 6.70468 14.9574C6.65205 14.4087 6.3926 13.7385 5.90097 13.1097C5.40938 12.481 4.82205 12.0676 4.30233 11.8841ZM12.3394 14.7786C12.5125 14.5637 12.8275 14.5295 13.0426 14.7025C13.081 14.7334 13.1653 14.7848 13.2691 14.8284C13.318 14.849 13.3639 14.8642 13.4019 14.8743C13.4373 14.8837 13.456 14.8858 13.4596 14.8861C13.7357 14.8914 13.9561 15.1197 13.9508 15.3958C13.9454 15.6718 13.7169 15.8912 13.441 15.8861C13.243 15.8822 13.0364 15.8145 12.8814 15.7493C12.7197 15.6813 12.5471 15.5876 12.4156 15.4818C12.2007 15.3087 12.1665 14.9937 12.3394 14.7786ZM3.92929 12.1361L3.9996 12.1497L4.09335 12.1878C4.3006 12.2932 4.41321 12.533 4.34921 12.7659C4.32756 12.8445 4.28534 12.9118 4.23397 12.9681C4.23698 12.9884 4.23927 13.0124 4.24472 13.0384C4.29698 13.2878 4.4441 13.6447 4.70565 13.9671C4.87945 14.1814 4.84746 14.4972 4.63339 14.6712C4.41911 14.8451 4.10336 14.812 3.92929 14.598C3.56417 14.1481 3.35003 13.6431 3.2662 13.2425C3.22622 13.0513 3.2054 12.8362 3.24569 12.6468C3.26503 12.5561 3.31274 12.4054 3.44296 12.2845C3.58407 12.1538 3.76357 12.1108 3.92929 12.1361ZM11.4869 11.7454C11.7171 11.7138 11.9466 11.8478 12.0269 12.0755C12.1125 12.3193 11.996 12.5828 11.7672 12.6908C11.7629 12.696 11.7547 12.705 11.7457 12.721C11.7178 12.7706 11.6872 12.8577 11.6793 12.9779C11.6641 13.2098 11.7368 13.5618 12.0719 13.9544C12.2511 14.1644 12.226 14.4802 12.0162 14.6595C11.8063 14.8387 11.4905 14.8145 11.3111 14.6048C10.8215 14.0312 10.6473 13.4258 10.6812 12.9115C10.698 12.6589 10.7662 12.4249 10.8746 12.2318C10.9645 12.0719 11.1042 11.9039 11.3004 11.807L11.3873 11.7699L11.4869 11.7454ZM6.34433 5.79427C6.34433 5.2357 6.77597 5.23572 6.77597 5.79427C6.77598 6.35264 6.99039 6.69727 7.06405 6.78743C7.13767 6.87749 7.26539 7.15945 7.72421 7.1595C8.18243 7.15988 8.18243 7.65527 7.72421 7.65559C7.26539 7.65559 7.19209 7.872 7.06405 8.02864C6.93609 8.18525 6.77798 8.41728 6.77792 8.96126C6.77792 9.50588 6.34628 9.51978 6.34628 8.96126C6.34618 8.40366 6.07586 8.067 6.04452 8.02864C6.01377 7.99102 5.69583 7.65582 5.33651 7.65559C4.97705 7.65559 4.98054 7.1595 5.33651 7.1595C5.69183 7.15932 5.92411 6.87024 5.99179 6.78743C6.05914 6.70504 6.3443 6.3528 6.34433 5.79427Z"
14
14
+
d="M2.73574 18.3601C2.73594 17.677 3.32247 17.677 3.32266 18.3601C3.32265 19.0436 3.61416 19.4657 3.71426 19.5759C3.81434 19.6861 3.98716 20.0308 4.61074 20.031C5.23458 20.031 5.23458 20.6384 4.61074 20.6384C3.98718 20.6385 3.88832 20.9028 3.71426 21.0945C3.54023 21.2861 3.32466 21.5701 3.32461 22.2361C3.32461 22.9025 2.7377 22.9195 2.7377 22.2361C2.73762 21.5527 2.36936 21.1405 2.32754 21.0945C2.28512 21.0478 1.853 20.6384 1.36465 20.6384C0.876077 20.6383 0.880828 20.0311 1.36465 20.031C1.84797 20.031 2.16417 19.6773 2.25625 19.5759C2.34783 19.4751 2.73574 19.0436 2.73574 18.3601ZM18.725 14.1091C18.7252 13.4672 19.2219 13.4672 19.2221 14.1091C19.2221 14.7515 19.4685 15.1481 19.5531 15.2517C19.6378 15.3554 19.7838 15.6792 20.3109 15.6794C20.8386 15.6795 20.8386 16.2507 20.3109 16.2507C19.7836 16.2508 19.7003 16.4993 19.5531 16.6794C19.406 16.8595 19.2231 17.126 19.223 17.7517C19.223 18.378 18.727 18.394 18.727 17.7517C18.7268 17.1115 18.4172 16.7246 18.3803 16.6794C18.3449 16.6361 17.9791 16.2509 17.5658 16.2507C17.1524 16.2507 17.1564 15.6794 17.5658 15.6794C17.9747 15.6792 18.2421 15.3467 18.3197 15.2517C18.3972 15.1569 18.725 14.7515 18.725 14.1091ZM6.01504 2.10422C6.64672 1.86255 7.22531 2.08061 7.63613 2.35715C8.04078 2.62974 8.39493 3.02782 8.6791 3.38937C8.96575 3.75413 9.23277 4.15115 9.4291 4.42941C9.66781 4.76781 9.58772 5.23649 9.24942 5.47531C8.91117 5.71399 8.44342 5.63262 8.20449 5.29465C7.98157 4.97871 7.75345 4.63961 7.49844 4.31516C7.24118 3.98794 7.00509 3.7411 6.79922 3.60227C6.70062 3.53584 6.63296 3.51125 6.59707 3.50363C6.57086 3.49816 6.56136 3.5017 6.55117 3.50559C6.51034 3.52147 6.30941 3.63402 6.04531 4.20187C5.92473 4.46131 5.6231 5.3269 5.2582 6.41965C5.18458 6.44275 5.13122 6.45949 5.12442 6.4675C5.12096 6.47173 5.11732 6.47502 5.11465 6.47824C4.82271 6.50596 4.53899 6.63022 4.3207 6.85715C4.08293 7.1045 3.97509 7.42056 3.97403 7.7175C3.97307 8.01459 4.07883 8.33353 4.31875 8.58371C4.37493 8.64225 4.43571 8.69333 4.49942 8.73801C4.28198 9.41064 4.07702 10.0582 3.90371 10.6013C4.17677 10.6273 4.44785 10.6908 4.70645 10.782C5.48747 11.0575 6.25304 11.6133 6.87539 12.363C7.04578 12.2775 7.22917 12.2287 7.41543 12.2058C7.85216 12.1521 8.2996 12.238 8.725 12.4275C8.84684 11.905 9.09849 11.4161 9.50039 10.9997C10.9871 9.45971 13.5373 9.9353 15.1488 11.4909C15.2814 11.6189 15.406 11.7542 15.5238 11.8943C15.6783 11.406 15.8673 10.8112 16.0648 10.1833C16.56 8.6093 17.1137 6.83716 17.3559 6.02316C17.6591 5.00414 18.0908 4.23252 18.7084 3.80344C19.383 3.33506 20.1254 3.37467 20.765 3.65305C21.3731 3.91782 21.9314 4.40937 22.4086 4.9509C22.8945 5.5023 23.3404 6.15682 23.7123 6.8132C23.9161 7.1734 23.7901 7.63045 23.4301 7.83469C23.0699 8.0388 22.612 7.91243 22.4076 7.55246C22.0747 6.96499 21.6866 6.39942 21.2836 5.94211C20.8721 5.47527 20.4858 5.16816 20.1664 5.02902C19.8785 4.90368 19.7094 4.93407 19.5629 5.03586C19.3593 5.17764 19.0585 5.55655 18.7924 6.4509C18.5462 7.27848 17.9894 9.06251 17.4955 10.6325C17.2481 11.419 17.0154 12.1546 16.8451 12.6931C16.76 12.9622 16.6914 13.1829 16.643 13.3357C16.6189 13.4117 16.6001 13.471 16.5873 13.5114C16.5809 13.5317 16.575 13.5479 16.5717 13.5583C16.5702 13.563 16.5686 13.5665 16.5678 13.5691V13.572L16.5668 13.573C16.5529 13.6167 16.5338 13.6578 16.5131 13.697C16.8827 14.9111 16.7312 16.1929 15.8383 17.1179C14.3515 18.6579 11.8014 18.1824 10.1898 16.6267C9.51025 15.9705 9.01744 15.1405 8.78555 14.2849C8.38066 13.8654 7.97524 13.7099 7.71035 13.696C7.92323 14.1726 8.05891 14.6578 8.10391 15.1267C8.18663 15.9904 7.96998 16.9098 7.23672 17.4831C6.5035 18.0562 5.55974 18.0451 4.7416 17.7566C3.91355 17.4644 3.10015 16.8593 2.45938 16.0398C1.81865 15.2203 1.42795 14.2849 1.34414 13.4109C1.263 12.5629 1.47081 11.6627 2.17227 11.0876C2.42418 10.2882 2.91291 8.75338 3.3959 7.27512C3.92269 5.66282 4.47194 4.03132 4.68692 3.56906C5.00955 2.87553 5.42899 2.32864 6.01504 2.10422ZM14.1068 12.57C12.8142 11.3223 11.2556 11.3413 10.5795 12.0417C9.90368 12.7423 9.93958 14.2999 11.2318 15.5476C12.5242 16.7952 14.0828 16.7769 14.7592 16.0769C15.4353 15.3765 15.3992 13.8179 14.1068 12.57ZM4.2084 12.197C3.67891 12.0102 3.32604 12.0888 3.13516 12.238C2.94454 12.3875 2.78478 12.71 2.83828 13.2683C2.89091 13.8169 3.14937 14.4871 3.64102 15.1159C4.13271 15.7448 4.72083 16.1581 5.24063 16.3415C5.76959 16.5281 6.12197 16.4505 6.31289 16.3015C6.50367 16.1522 6.66419 15.8287 6.61074 15.2702C6.55812 14.7216 6.29867 14.0514 5.80703 13.4226C5.31545 12.7939 4.72812 12.3805 4.2084 12.197ZM12.2455 15.0915C12.4186 14.8766 12.7336 14.8424 12.9486 15.0154C12.9871 15.0463 13.0714 15.0977 13.1752 15.1413C13.224 15.1618 13.27 15.1771 13.308 15.1872C13.3434 15.1966 13.362 15.1986 13.3656 15.1989C13.6417 15.2043 13.8622 15.4326 13.8568 15.7087C13.8514 15.9846 13.623 16.2041 13.3471 16.1989C13.1491 16.1951 12.9425 16.1273 12.7875 16.0622C12.6258 15.9942 12.4532 15.9004 12.3217 15.7946C12.1068 15.6215 12.0726 15.3066 12.2455 15.0915ZM3.83535 12.4489L3.90567 12.4626L3.99942 12.5007C4.20667 12.6061 4.31928 12.8459 4.25528 13.0788C4.23363 13.1573 4.19141 13.2246 4.14004 13.281C4.14305 13.3013 4.14533 13.3252 4.15078 13.3513C4.20305 13.6007 4.35016 13.9576 4.61172 14.28C4.78552 14.4943 4.75352 14.8101 4.53945 14.9841C4.32517 15.158 4.00943 15.1249 3.83535 14.9109C3.47023 14.4609 3.2561 13.956 3.17227 13.5554C3.13229 13.3642 3.11147 13.1491 3.15176 12.9597C3.1711 12.8689 3.2188 12.7183 3.34903 12.5974C3.49014 12.4666 3.66964 12.4237 3.83535 12.4489ZM11.393 12.0583C11.6232 12.0267 11.8527 12.1607 11.933 12.3884C12.0186 12.6322 11.9021 12.8956 11.6732 13.0036C11.6689 13.0089 11.6608 13.0179 11.6518 13.0339C11.6239 13.0835 11.5933 13.1706 11.5854 13.2907C11.5701 13.5227 11.6429 13.8747 11.9779 14.2673C12.1572 14.4773 12.1321 14.7931 11.9223 14.9724C11.7123 15.1516 11.3965 15.1274 11.2172 14.9177C10.7276 14.3441 10.5534 13.7387 10.5873 13.2243C10.604 12.9718 10.6723 12.7377 10.7807 12.5446C10.8705 12.3848 11.0103 12.2168 11.2064 12.1198L11.2934 12.0827L11.393 12.0583ZM6.25039 6.10715C6.25039 5.54858 6.68204 5.5486 6.68203 6.10715C6.68205 6.66552 6.89645 7.01015 6.97012 7.10031C7.04374 7.19038 7.17145 7.47233 7.63028 7.47238C8.08849 7.47276 8.08849 7.96815 7.63028 7.96848C7.17145 7.96848 7.09816 8.18488 6.97012 8.34152C6.84216 8.49813 6.68405 8.73016 6.68399 9.27414C6.68399 9.81876 6.25235 9.83266 6.25235 9.27414C6.25224 8.71654 5.98193 8.37988 5.95059 8.34152C5.91984 8.3039 5.6019 7.9687 5.24258 7.96848C4.88311 7.96848 4.8866 7.47238 5.24258 7.47238C5.59789 7.4722 5.83017 7.18312 5.89785 7.10031C5.9652 7.01792 6.25037 6.66568 6.25039 6.10715Z"
14
15
fill="currentColor"
15
16
/>
16
17
</svg>
+19
components/Icons/WriterSmall.tsx
···
1
1
+
import { Props } from "./Props";
2
2
+
3
3
+
export const WriterSmall = (props: Props) => {
4
4
+
return (
5
5
+
<svg
6
6
+
width="24"
7
7
+
height="24"
8
8
+
viewBox="0 0 24 24"
9
9
+
fill="none"
10
10
+
xmlns="http://www.w3.org/2000/svg"
11
11
+
{...props}
12
12
+
>
13
13
+
<path
14
14
+
d="M12.8808 22.0391C13.2948 22.0391 13.6304 22.3752 13.6308 22.7891C13.6306 23.203 13.2948 23.5389 12.8808 23.5391H4.92087C4.50702 23.5387 4.17194 23.203 4.17185 22.7891C4.17211 22.3751 4.5078 22.0391 4.92185 22.0391H12.8808ZM16.459 22.0391C16.8728 22.0392 17.2086 22.3752 17.209 22.7891C17.2088 23.2031 16.873 23.539 16.459 23.5391H14.7275C14.3134 23.5391 13.9777 23.2032 13.9775 22.7891C13.9778 22.3753 14.3128 22.0394 14.7265 22.0391H16.459ZM19.3564 22.0391C19.7705 22.0391 20.1071 22.3751 20.1074 22.7891C20.1073 23.2031 19.7714 23.5389 19.3574 23.5391H19.0635C18.6493 23.539 18.3135 23.2032 18.3135 22.7891C18.3137 22.3751 18.6495 22.0392 19.0635 22.0391H19.3564ZM10.1855 0.950222C10.3045 0.626539 10.6635 0.459613 10.9873 0.578152C11.3111 0.697051 11.4779 1.05701 11.3594 1.38089L9.4404 6.60842C11.2712 6.62023 12.534 6.984 13.6426 7.69924C13.9325 7.88633 14.016 8.2735 13.8291 8.5635C13.6419 8.85336 13.2548 8.93714 12.9648 8.75002C12.0834 8.18125 11.0469 7.85792 9.35154 7.85744C8.40737 7.85725 7.83011 8.29872 7.62888 8.71389C7.52952 8.91924 7.5134 9.12534 7.57224 9.31349C7.60658 9.42299 7.67297 9.54419 7.78611 9.66701C7.8081 9.64379 7.82999 9.6196 7.85251 9.59572C7.72688 9.31573 7.82074 8.97928 8.08787 8.81154C9.11751 8.16703 10.4737 8.28506 11.5732 8.68654C12.674 9.08861 13.7516 9.85814 14.2021 10.8174C14.371 11.1772 14.1513 11.6095 13.7685 11.6924C13.7617 11.7923 13.7544 11.8969 13.748 12.0049C14.1962 12.082 14.4968 12.046 14.6826 11.9756C14.8825 11.8997 14.9818 11.7762 15.0293 11.6182C15.1422 11.2404 14.9722 10.5056 14.2744 9.82814C14.0272 9.58772 14.0216 9.19189 14.2617 8.94435C14.5021 8.69712 14.8979 8.6915 15.1455 8.93166C15.3345 9.11519 15.5055 9.31499 15.6552 9.52443L17.8857 6.6133C18.0956 6.33963 18.4878 6.28747 18.7617 6.49709C19.0354 6.70683 19.0881 7.0991 18.8789 7.37307L16.249 10.8028C16.3391 11.2028 16.3391 11.6038 16.2275 11.9766C16.0692 12.5048 15.692 12.9296 15.125 13.1445C14.7132 13.3005 14.2295 13.3348 13.6894 13.2608C13.6825 13.4465 13.6757 13.6333 13.6699 13.8174C13.6519 14.3885 13.6397 14.9235 13.6318 15.3154C13.625 15.654 13.6211 15.8899 13.6201 15.9443C13.6201 16.2235 13.4305 16.4762 13.1601 16.5498C12.7201 16.6232 12.2788 16.6722 11.8427 16.7764C11.1206 16.949 10.2109 17.2517 9.40134 17.7647C7.89664 18.7182 6.97599 19.4365 6.3613 19.9883C5.74196 20.5443 5.43673 20.9247 5.09861 21.2852C4.91911 21.4765 4.6388 21.5354 4.39744 21.4326C4.1565 21.3297 4.00507 21.0869 4.01853 20.8252C4.17895 17.7398 4.63069 14.9266 5.55173 12.1611L5.59568 12.0596C5.61302 12.0278 5.63354 11.9972 5.65623 11.9688C6.10821 11.4021 6.46823 11.0234 6.88767 10.5947C6.89692 10.5853 6.90569 10.575 6.91501 10.5654C6.66279 10.3067 6.48116 10.0099 6.37986 9.68654C6.21786 9.1688 6.2782 8.63513 6.50388 8.16896C6.78976 7.5789 7.32765 7.10847 8.02146 6.84377L10.1855 0.950222ZM11.1445 9.86135C10.5565 9.64663 9.98214 9.56714 9.49802 9.62502C9.47457 9.6687 9.44776 9.71158 9.41306 9.75002C8.68746 10.5525 8.19322 11.0477 7.78122 11.4688C7.39591 11.8626 7.0838 12.1914 6.70212 12.6631C6.27084 13.9767 5.94845 15.307 5.71482 16.6826C6.1386 15.806 6.61502 14.9664 7.22654 14.0108C7.01626 13.3116 7.75399 11.8362 8.61033 11.6953C9.11052 11.6133 9.62805 11.94 9.67185 12.4834C9.72674 13.1687 9.35942 13.6875 8.95505 14.0547C8.71606 14.2717 8.41197 14.4145 8.124 14.4619C7.14963 15.9751 6.53411 17.1724 5.91208 18.7236C6.5649 18.1767 7.45483 17.5176 8.7324 16.708C9.70022 16.0948 10.7551 15.7512 11.5527 15.5606C11.8711 15.4845 12.1537 15.4336 12.3789 15.3975C12.3868 14.9958 12.401 14.4083 12.4209 13.7774C12.4553 12.684 12.512 11.4022 12.6025 10.7354C12.2417 10.3934 11.7319 10.076 11.1445 9.86135Z"
15
15
+
fill="currentColor"
16
16
+
/>
17
17
+
</svg>
18
18
+
);
19
19
+
};