refactor(client): use css modules

This commit is contained in:
syuilo 2023-03-02 14:38:45 +09:00
parent ea1cff499a
commit fdf7605074
1 changed files with 51 additions and 64 deletions

View File

@ -3,48 +3,48 @@
<MkStickyContainer> <MkStickyContainer>
<template #header><XHeader :actions="headerActions" :tabs="headerTabs"/></template> <template #header><XHeader :actions="headerActions" :tabs="headerTabs"/></template>
<MkSpacer :content-max="900"> <MkSpacer :content-max="900">
<div class="lknzcolw"> <div class="_gaps">
<div class="users"> <div :class="$style.inputs">
<div class="inputs"> <MkSelect v-model="sort" style="flex: 1;">
<MkSelect v-model="sort" style="flex: 1;"> <template #label>{{ i18n.ts.sort }}</template>
<template #label>{{ i18n.ts.sort }}</template> <option value="-createdAt">{{ i18n.ts.registeredDate }} ({{ i18n.ts.ascendingOrder }})</option>
<option value="-createdAt">{{ i18n.ts.registeredDate }} ({{ i18n.ts.ascendingOrder }})</option> <option value="+createdAt">{{ i18n.ts.registeredDate }} ({{ i18n.ts.descendingOrder }})</option>
<option value="+createdAt">{{ i18n.ts.registeredDate }} ({{ i18n.ts.descendingOrder }})</option> <option value="-updatedAt">{{ i18n.ts.lastUsed }} ({{ i18n.ts.ascendingOrder }})</option>
<option value="-updatedAt">{{ i18n.ts.lastUsed }} ({{ i18n.ts.ascendingOrder }})</option> <option value="+updatedAt">{{ i18n.ts.lastUsed }} ({{ i18n.ts.descendingOrder }})</option>
<option value="+updatedAt">{{ i18n.ts.lastUsed }} ({{ i18n.ts.descendingOrder }})</option> </MkSelect>
</MkSelect> <MkSelect v-model="state" style="flex: 1;">
<MkSelect v-model="state" style="flex: 1;"> <template #label>{{ i18n.ts.state }}</template>
<template #label>{{ i18n.ts.state }}</template> <option value="all">{{ i18n.ts.all }}</option>
<option value="all">{{ i18n.ts.all }}</option> <option value="available">{{ i18n.ts.normal }}</option>
<option value="available">{{ i18n.ts.normal }}</option> <option value="admin">{{ i18n.ts.administrator }}</option>
<option value="admin">{{ i18n.ts.administrator }}</option> <option value="moderator">{{ i18n.ts.moderator }}</option>
<option value="moderator">{{ i18n.ts.moderator }}</option> <option value="suspended">{{ i18n.ts.suspend }}</option>
<option value="suspended">{{ i18n.ts.suspend }}</option> </MkSelect>
</MkSelect> <MkSelect v-model="origin" style="flex: 1;">
<MkSelect v-model="origin" style="flex: 1;"> <template #label>{{ i18n.ts.instance }}</template>
<template #label>{{ i18n.ts.instance }}</template> <option value="combined">{{ i18n.ts.all }}</option>
<option value="combined">{{ i18n.ts.all }}</option> <option value="local">{{ i18n.ts.local }}</option>
<option value="local">{{ i18n.ts.local }}</option> <option value="remote">{{ i18n.ts.remote }}</option>
<option value="remote">{{ i18n.ts.remote }}</option> </MkSelect>
</MkSelect> </div>
</div> <div :class="$style.inputs">
<div class="inputs"> <MkInput v-model="searchUsername" style="flex: 1;" type="text" :spellcheck="false" @update:model-value="$refs.users.reload()">
<MkInput v-model="searchUsername" style="flex: 1;" type="text" :spellcheck="false" @update:model-value="$refs.users.reload()"> <template #prefix>@</template>
<template #prefix>@</template> <template #label>{{ i18n.ts.username }}</template>
<template #label>{{ i18n.ts.username }}</template> </MkInput>
</MkInput> <MkInput v-model="searchHost" style="flex: 1;" type="text" :spellcheck="false" :disabled="pagination.params.origin === 'local'" @update:model-value="$refs.users.reload()">
<MkInput v-model="searchHost" style="flex: 1;" type="text" :spellcheck="false" :disabled="pagination.params.origin === 'local'" @update:model-value="$refs.users.reload()"> <template #prefix>@</template>
<template #prefix>@</template> <template #label>{{ i18n.ts.host }}</template>
<template #label>{{ i18n.ts.host }}</template> </MkInput>
</MkInput> </div>
</div>
<MkPagination v-slot="{items}" ref="paginationComponent" :pagination="pagination" class="users"> <MkPagination v-slot="{items}" ref="paginationComponent" :pagination="pagination">
<MkA v-for="user in items" :key="user.id" v-tooltip.mfm="`Last posted: ${dateString(user.updatedAt)}`" class="user" :to="`/user-info/${user.id}`"> <div :class="$style.users">
<MkA v-for="user in items" :key="user.id" v-tooltip.mfm="`Last posted: ${dateString(user.updatedAt)}`" :class="$style.user" :to="`/user-info/${user.id}`">
<MkUserCardMini :user="user"/> <MkUserCardMini :user="user"/>
</MkA> </MkA>
</MkPagination> </div>
</div> </MkPagination>
</div> </div>
</MkSpacer> </MkSpacer>
</MkStickyContainer> </MkStickyContainer>
@ -138,33 +138,20 @@ definePageMetadata(computed(() => ({
}))); })));
</script> </script>
<style lang="scss" scoped> <style lang="scss" module>
.lknzcolw { .inputs {
> .users { display: flex;
gap: 8px;
flex-wrap: wrap;
}
> .inputs { .users {
display: flex; display: grid;
margin-bottom: 16px; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
grid-gap: 12px;
> * { > .user:hover {
margin-right: 16px; text-decoration: none;
&:last-child {
margin-right: 0;
}
}
}
> .users {
margin-top: var(--margin);
display: grid;
grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
grid-gap: 12px;
> .user:hover {
text-decoration: none;
}
}
} }
} }
</style> </style>