Skip to content
Snippets Groups Projects
Commit 4921513e authored by Jorik Schellekens's avatar Jorik Schellekens
Browse files

Automaitcally copy invite information

parent 154f82f7
No related branches found
No related tags found
No related merge requests found
......@@ -57,6 +57,17 @@ const Weechat: TextClient = {
return <span>Weechat doesn't support this kind of link</span>;
}
},
copyString: (link) => {
switch (link.kind) {
case LinkKind.Alias:
case LinkKind.RoomId:
return `/join ${link.identifier}`;
case LinkKind.UserId:
return `/invite ${link.identifier}`;
default:
return '';
}
},
description: 'Commandline Matrix interface using Weechat',
};
......
......@@ -81,6 +81,7 @@ export interface LinkedClient extends ClientDescription {
export interface TextClient extends ClientDescription {
kind: ClientKind.TEXT_CLIENT;
toInviteString(parsedLink: SafeLink): JSX.Element;
copyString(parsedLink: SafeLink): string;
}
/*
......
......@@ -42,7 +42,16 @@ const ClientTile: React.FC<IProps> = ({ client, link }: IProps) => {
const inviteButton =
client.kind === ClientKind.LINKED_CLIENT ? (
<Button>Accept invite</Button>
) : null;
) : (
<Button
onClick={() =>
navigator.clipboard.writeText(client.copyString(link))
}
flashChildren="Invite copied"
>
Copy invite
</Button>
);
let clientTile = (
<Tile className={className}>
......
......@@ -61,6 +61,7 @@ const InviteTile: React.FC<IProps> = ({ children, client, link }: IProps) => {
case ClientKind.TEXT_CLIENT:
// TODO: copy to clipboard
invite = <p>{client.toInviteString(link)}</p>;
navigator.clipboard.writeText(client.copyString(link));
inviteUseString = `These are instructions for ${client.name}.`;
break;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment