) => {
+ setName(event.currentTarget.value);
+ },
+ [],
+ );
+
+ return (
+
+
+
+
+ Invite links make it easy for your friends to join your community.
+ Anybody who knows your community’s invite link will be able to join
+ it.
+
+
+ Note that if you change your public link’s URL, other communities
+ will be able to claim the old URL.
+
+
+
+
+ Invite URL
+
+ {inviteLinkUrl('')}
+
+
+
+
+
+
+
+
+
+ );
+}
+
+export default EditLinkModal;
diff --git a/web/invite-links/manage/empty-link-content.react.js b/web/invite-links/manage/empty-link-content.react.js
--- a/web/invite-links/manage/empty-link-content.react.js
+++ b/web/invite-links/manage/empty-link-content.react.js
@@ -9,11 +9,16 @@
color: 'var(--purple-link)',
};
-function EmptyLinkContent(): React.Node {
+type Props = {
+ +enterEditMode: () => mixed,
+};
+
+function EmptyLinkContent(props: Props): React.Node {
+ const { enterEditMode } = props;
return (
diff --git a/web/invite-links/manage/existing-link-content.react.js b/web/invite-links/manage/existing-link-content.react.js
--- a/web/invite-links/manage/existing-link-content.react.js
+++ b/web/invite-links/manage/existing-link-content.react.js
@@ -14,9 +14,10 @@
type Props = {
+inviteLink: InviteLink,
+ +enterEditMode: () => mixed,
};
function ExistingLinkContent(props: Props): React.Node {
- const { inviteLink } = props;
+ const { inviteLink, enterEditMode } = props;
return (
<>
@@ -30,6 +31,7 @@
variant="text"
buttonColor={buttonColor}
className={css.inlineButton}
+ onClick={enterEditMode}
>
Edit public link
diff --git a/web/invite-links/manage/manage-invite-links-modal.css b/web/invite-links/manage/manage-invite-links-modal.css
--- a/web/invite-links/manage/manage-invite-links-modal.css
+++ b/web/invite-links/manage/manage-invite-links-modal.css
@@ -25,3 +25,47 @@
display: inline;
font-size: var(--s-font-14);
}
+
+.editLinkContainer {
+ display: flex;
+ flex-direction: column;
+ gap: 32px;
+ color: var(--modal-fg);
+ font-size: var(--s-font-14);
+}
+
+.editLinkDescription {
+ font-weight: var(--semi-bold);
+ color: var(--modal-fg);
+ display: flex;
+ flex-direction: column;
+ gap: 12px;
+}
+
+.editLinkDescription p {
+ font-size: var(--s-font-14);
+}
+
+.separator {
+ border-color: var(--border-color);
+ margin: 0;
+}
+
+.linkSection {
+ display: flex;
+ flex-direction: column;
+ gap: 16px;
+}
+
+.linkRow {
+ display: flex;
+ font-size: var(--m-font-16);
+ align-items: center;
+ gap: 8px;
+}
+
+.buttonRow {
+ display: flex;
+ justify-content: flex-end;
+ gap: 8px;
+}
diff --git a/web/modals/input.react.js b/web/modals/input.react.js
--- a/web/modals/input.react.js
+++ b/web/modals/input.react.js
@@ -18,7 +18,7 @@
export type InputProps = {
...BaseInputProps,
+type: string,
- +placeholder: string,
+ +placeholder?: string,
+maxLength?: number,
};