Merge branch 'main' into improve-chat-look
This commit is contained in:
commit
014dff9c2d
6 changed files with 34 additions and 8 deletions
|
@ -40,7 +40,8 @@ function copyInvite(type: "link" | "code") {
|
|||
if (!invite.value) return;
|
||||
|
||||
if (type == "link") {
|
||||
const inviteUrl = URL.parse(`invite/${invite.value}`, `${window.location.protocol}//${window.location.host}`);
|
||||
const runtimeConfig = useRuntimeConfig();
|
||||
const inviteUrl = URL.parse(`invite/${invite.value}`, `${window.location.protocol}//${window.location.host}${runtimeConfig.app.baseURL}`);
|
||||
if (inviteUrl) {
|
||||
navigator.clipboard.writeText(inviteUrl.href);
|
||||
}
|
||||
|
|
|
@ -34,7 +34,8 @@
|
|||
<span class="theme-title" :style="{color:`${layout.complementaryColor}`}">
|
||||
{{ layout.displayName }}
|
||||
</span>
|
||||
<NuxtImg class="layout-preview" :src="layout.previewImageUrl"></NuxtImg>
|
||||
<!-- this breaks if it's a nuxtimg, i don't know why -->
|
||||
<img class="layout-preview" :src="layout.previewImageUrl"></img>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -60,8 +61,8 @@ import { settingSave, settingsLoad } from '#imports';
|
|||
|
||||
const runtimeConfig = useRuntimeConfig()
|
||||
const baseURL = runtimeConfig.app.baseURL;
|
||||
const styleFolder = `${baseURL}themes/style`
|
||||
const layoutFolder = `${baseURL}themes/layout`
|
||||
const styleFolder = `${baseURL}/themes/style`
|
||||
const layoutFolder = `${baseURL}/themes/layout`
|
||||
|
||||
const timeFormatTextStrings = ["Auto", "12-Hour", "24-Hour"]
|
||||
|
||||
|
@ -115,6 +116,7 @@ async function parseTheme(url: string): Promise<Theme | void> {
|
|||
break
|
||||
case "previewImageUrl":
|
||||
previewImageUrl = `${layoutFolder}/${lineArray[1].trim()}`
|
||||
console.log(previewImageUrl)
|
||||
break
|
||||
}
|
||||
}
|
||||
|
|
|
@ -34,7 +34,7 @@ const storedWidth = ref<string>();
|
|||
const contextMenu = useState<ContextMenuInterface>("contextMenu");
|
||||
|
||||
const menuItems: ContextMenuItem[] = [
|
||||
{ name: "Reset", callback: () => {
|
||||
{ name: "Reset", type: "normal", callback: () => {
|
||||
const defaultWidth = props.width ?? props.minWidth;
|
||||
resizableSidebar.value!.style.width = defaultWidth;
|
||||
if (props.localStorageName) {
|
||||
|
|
11
types/enums.ts
Normal file
11
types/enums.ts
Normal file
|
@ -0,0 +1,11 @@
|
|||
export const enum Permission {
|
||||
SendMessage = 1,
|
||||
ManageChannel = 2,
|
||||
ManageRole = 4,
|
||||
CreateInvite = 8,
|
||||
ManageInvite = 16,
|
||||
ManageGuild = 32,
|
||||
ManageMember = 64,
|
||||
BanMember = 128,
|
||||
KickMember = 256
|
||||
}
|
|
@ -19,16 +19,17 @@ export interface GuildResponse {
|
|||
description: string | null,
|
||||
icon: string | null,
|
||||
owner_uuid: string,
|
||||
roles: [],
|
||||
roles: RoleResponse[],
|
||||
member_count: number
|
||||
}
|
||||
|
||||
export interface GuildMemberResponse {
|
||||
uuid: string,
|
||||
nickname: string,
|
||||
user_uuid: string,
|
||||
guild_uuid: string,
|
||||
user: UserResponse
|
||||
is_owner: boolean,
|
||||
user: UserResponse,
|
||||
roles: RoleResponse[]
|
||||
}
|
||||
|
||||
export interface GuildMembersResponse {
|
||||
|
|
11
utils/hasPermission.ts
Normal file
11
utils/hasPermission.ts
Normal file
|
@ -0,0 +1,11 @@
|
|||
import type { Permission } from "~/types/enums";
|
||||
import type { GuildMemberResponse } from "~/types/interfaces";
|
||||
|
||||
export default (member: GuildMemberResponse, permission: Permission) => {
|
||||
for (const role of member.roles) {
|
||||
if (role.permissions & permission) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue