@@ -139,38 +140,97 @@ export default function ServerInviteList({ server, invites, channels, users }: {
-
-
-
-
-
-
- Bulk delete invites
-
-
-
- This will delete all invites that match your filter options.
-
- {filteredInvites.length} invite{filteredInvites.length == 1 ? '' : 's'} will be deleted.
-
-
- {
- try {
- await bulkDeleteInvites(filteredInvites.map(i => i._id));
- setDeletedInvites([...deletedInvites, ...filteredInvites.map(i => i._id)]);
- toast({ title: "Selected invites have been deleted" });
- } catch(e) {
- toast({
- title: "Failed to delete invite",
- description: String(e),
- variant: "destructive",
- });
- }
- }}
- >Bulk delete
- Cancel
-
+
+
+
+
+
+
+ Bulk delete invites
+
+
+
+ This will delete all invites that match your filter options.
+
+ {filteredInvites.length} invite{filteredInvites.length == 1 ? '' : 's'} will be deleted.
+
+
+ {
+ try {
+ await bulkDeleteInvites(filteredInvites.map(i => i._id));
+ setInvites(invites.filter(invite => !filteredInvites.find(i => i._id == invite._id)));
+ toast({ title: "Selected invites have been deleted" });
+ } catch(e) {
+ toast({
+ title: "Failed to delete invites",
+ description: String(e),
+ variant: "destructive",
+ });
+ }
+ }}
+ >Bulk delete
+ Cancel
+
+
+
+
+
+
+
+
+
+
+
+ Create vanity invite
+
+
+
+ Invites are case sensitive.
+
+ setInviteDraft(e.currentTarget.value)}
+ placeholder="fortnite"
+ />
+
+
+
+
+ {
+ try {
+ const newInvite: ChannelInvite = {
+ _id: inviteDraft,
+ channel: inviteChannelDraft,
+ creator: server.owner,
+ server: server._id,
+ type: "Server",
+ vanity: true,
+ };
+ await createInvite(newInvite);
+ setInvites([...invites, newInvite]);
+ setInviteDraft("");
+ toast({
+ title: "Vanity invite created",
+ description: rvlt.gg/{inviteDraft}
+ });
+ } catch(e) {
+ toast({
+ title: "Failed to create invite",
+ description: String(e),
+ variant: "destructive",
+ });
+ }
+ }}
+ >Create
+ Cancel
+
@@ -178,9 +238,49 @@ export default function ServerInviteList({ server, invites, channels, users }: {
{filteredInvites.map(invite => (