import { mergeProps, splitProps } from "solid-js"; import { CONFIGURATION } from "@revolt/common"; import { type ActiveModal } from "."; import { AddBotModal } from "./modals/AddBot"; import { AddFriendModal } from "./modals/AddFriend"; import { AddMembersToGroupModal } from "./modals/AddMembersToGroup"; import { BanMemberModal } from "./modals/BanMember"; import { BanNonMemberModal } from "./modals/BanNonMember"; import { ChangelogModal } from "./modals/Changelog"; import { ChannelInfoModal } from "./modals/ChannelInfo"; import { ChannelToggleMatureModal } from "./modals/ChannelToggleMature"; import { CreateBotModal } from "./modals/CreateBot"; import { CreateCategoryModal } from "./modals/CreateCategory"; import { CreateChannelModal } from "./modals/CreateChannel"; import { CreateGroupModal } from "./modals/CreateGroup"; import { CreateGroupOrServer } from "./modals/CreateGroupOrServer"; import { CreateInviteModal } from "./modals/CreateInvite"; import { CreateOrJoinServerModal } from "./modals/CreateOrJoinServer"; import { CreateRoleModal } from "./modals/CreateRole"; import { CreateServerModal } from "./modals/CreateServer"; import { CreateWebhookModal } from "./modals/CreateWebhook"; import { CustomStatusModal } from "./modals/CustomStatus"; import { DeleteBotModal } from "./modals/DeleteBot"; import { DeleteCategoryModal } from "./modals/DeleteCategory"; import { DeleteChannelModal } from "./modals/DeleteChannel"; import { DeleteMessageModal } from "./modals/DeleteMessage"; import { DeleteRoleModal } from "./modals/DeleteRole"; import { DeleteServerModal } from "./modals/DeleteServer"; import { EditCategoryModal } from "./modals/EditCategory"; import { EditEmailModal } from "./modals/EditEmail"; import { EditPasswordModal } from "./modals/EditPassword"; import { EditUsernameModal } from "./modals/EditUsername"; import { EmojiPreviewModal } from "./modals/EmojiPreview"; import { Error2Modal } from "./modals/Error2"; import { ImageViewerModal } from "./modals/ImageViewer"; import { InviteModal } from "./modals/Invite"; import { JoinServerModal } from "./modals/JoinServer"; import { KickMemberModal } from "./modals/KickMember"; import { LeaveServerModal } from "./modals/LeaveServer"; import { LinkWarningModal } from "./modals/LinkWarning"; import { MFAEnableTOTPModal } from "./modals/MFAEnableTOTP"; import { MFAFlowModal } from "./modals/MFAFlow"; import { MFARecoveryModal } from "./modals/MFARecovery"; import { OnboardingModal } from "./modals/Onboarding"; import { PolicyChangeModal } from "./modals/PolicyChange"; import { RenameSessionModal } from "./modals/RenameSession"; import { ReportContentModal } from "./modals/ReportContent"; import { ResetBotTokenModal } from "./modals/ResetBotToken"; import { ServerIdentityModal } from "./modals/ServerIdentity"; import { ServerInfoModal } from "./modals/ServerInfo"; import { SettingsModal } from "./modals/Settings"; import { SignOutSessionsModal } from "./modals/SignOutSessions"; import { SignedOutModal } from "./modals/SignedOut"; import { UserProfileModal } from "./modals/UserProfile"; import { UserProfileMutualFriendsModal } from "./modals/UserProfileMutualFriends"; import { UserProfileMutualGroupsModal } from "./modals/UserProfileMutualGroups"; import { UserProfileRolesModal } from "./modals/UserProfileRoles"; /** * Render the modal */ /* eslint-disable solid/reactivity */ /* eslint-disable solid/components-return-once */ export function RenderModal(props: ActiveModal & { onClose: () => void }) { if (CONFIGURATION.DEBUG) { console.info( "components/modal — modal renderer created for type:", props.props.type, ); } const [modal2Props] = splitProps(props, ["show", "onClose"]); const modalProps = mergeProps(props.props, modal2Props); switch (modalProps.type) { case "add_bot": return ; case "add_friend": return ; case "ban_member": return ; case "ban_non_member": return ; case "changelog": return ; case "add_members_to_group": return ; case "channel_info": return ; case "channel_toggle_mature": return ; case "create_bot": return ; case "create_category": return ; case "create_channel": return ; case "create_group": return ; case "create_invite": return ; case "create_or_join_server": return ; case "create_group_or_server": return ; case "create_role": return ; case "create_server": return ; case "create_webhook": return ; case "custom_status": return ; case "delete_bot": return ; case "delete_channel": return ; case "delete_category": return ; case "delete_message": return ; case "delete_role": return ; case "delete_server": return ; case "edit_email": return ; case "edit_password": return ; case "edit_username": return ; case "emoji_preview": return ; case "error2": return ; case "image_viewer": return ; case "invite": return ; case "join_server": return ; case "kick_member": return ; case "leave_server": return ; case "link_warning": return ; case "mfa_enable_totp": return ; case "mfa_flow": return ; case "mfa_recovery": return ; case "onboarding": return ; case "policy_change": return ; case "rename_session": return ; case "report_content": return ; case "server_identity": return ; case "server_info": return ; case "settings": return ; case "signed_out": return ; case "sign_out_sessions": return ; case "user_profile": return ; case "user_profile_roles": return ; case "user_profile_mutual_friends": return ; case "user_profile_mutual_groups": return ; case "reset_bot_token": return ; case "edit_category": return ; default: console.error( "Failed to create modal for", props.props.type, "as it is not registered.", ); } }