diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2023-01-16 05:26:29 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2023-01-16 05:26:29 +0900 |
| commit | f3c5ca6cf40fb5460c5109e1096f714309018540 (patch) | |
| tree | a8e68691f6fa15a2d1be6d4cdb9d21a7c4cc5609 /packages/frontend/src/components/MkUserSelectDialog.vue | |
| parent | enhance(client): ロールのポリシーを絞り込めるように (diff) | |
| download | sharkey-f3c5ca6cf40fb5460c5109e1096f714309018540.tar.gz sharkey-f3c5ca6cf40fb5460c5109e1096f714309018540.tar.bz2 sharkey-f3c5ca6cf40fb5460c5109e1096f714309018540.zip | |
refactor(client): use css modules
Diffstat (limited to 'packages/frontend/src/components/MkUserSelectDialog.vue')
| -rw-r--r-- | packages/frontend/src/components/MkUserSelectDialog.vue | 148 |
1 files changed, 73 insertions, 75 deletions
diff --git a/packages/frontend/src/components/MkUserSelectDialog.vue b/packages/frontend/src/components/MkUserSelectDialog.vue index e420c0ffac..4c79979cb7 100644 --- a/packages/frontend/src/components/MkUserSelectDialog.vue +++ b/packages/frontend/src/components/MkUserSelectDialog.vue @@ -9,8 +9,8 @@ @closed="$emit('closed')" > <template #header>{{ i18n.ts.selectUser }}</template> - <div class="tbhwbxda"> - <div class="form"> + <div :class="$style.root"> + <div :class="$style.form"> <FormSplit :min-width="170"> <MkInput v-model="username" :autofocus="true" @update:model-value="search"> <template #label>{{ i18n.ts.username }}</template> @@ -22,27 +22,27 @@ </MkInput> </FormSplit> </div> - <div v-if="username != '' || host != ''" class="result" :class="{ hit: users.length > 0 }"> - <div v-if="users.length > 0" class="users"> - <div v-for="user in users" :key="user.id" class="user" :class="{ selected: selected && selected.id === user.id }" @click="selected = user" @dblclick="ok()"> - <MkAvatar :user="user" class="avatar" :show-indicator="true"/> - <div class="body"> - <MkUserName :user="user" class="name"/> - <MkAcct :user="user" class="acct"/> + <div v-if="username != '' || host != ''" :class="[$style.result, { [$style.hit]: users.length > 0 }]"> + <div v-if="users.length > 0" :class="$style.users"> + <div v-for="user in users" :key="user.id" class="_button" :class="[$style.user, { [$style.selected]: selected && selected.id === user.id }]" @click="selected = user" @dblclick="ok()"> + <MkAvatar :user="user" :class="$style.avatar" :show-indicator="true" :disable-link="true" :disable-preview="true"/> + <div :class="$style.userBody"> + <MkUserName :user="user" :class="$style.userName"/> + <MkAcct :user="user" :class="$style.userAcct"/> </div> </div> </div> - <div v-else class="empty"> + <div v-else :class="$style.empty"> <span>{{ i18n.ts.noUsers }}</span> </div> </div> - <div v-if="username == '' && host == ''" class="recent"> - <div class="users"> - <div v-for="user in recentUsers" :key="user.id" class="user" :class="{ selected: selected && selected.id === user.id }" @click="selected = user" @dblclick="ok()"> - <MkAvatar :user="user" class="avatar" :show-indicator="true"/> - <div class="body"> - <MkUserName :user="user" class="name"/> - <MkAcct :user="user" class="acct"/> + <div v-if="username == '' && host == ''" :class="$style.recent"> + <div :class="$style.users"> + <div v-for="user in recentUsers" :key="user.id" class="_button" :class="[$style.user, { [$style.selected]: selected && selected.id === user.id }]" @click="selected = user" @dblclick="ok()"> + <MkAvatar :user="user" :class="$style.avatar" :show-indicator="true" :disable-link="true" :disable-preview="true"/> + <div :class="$style.userBody"> + <MkUserName :user="user" :class="$style.userName"/> + <MkAcct :user="user" :class="$style.userAcct"/> </div> </div> </div> @@ -115,76 +115,74 @@ onMounted(() => { }); </script> -<style lang="scss" scoped> -.tbhwbxda { - > .form { - padding: 0 var(--root-margin); - } +<style lang="scss" module> +.root { +} - > .result, > .recent { - display: flex; - flex-direction: column; - overflow: auto; - height: 100%; +.form { + padding: 0 var(--root-margin); +} - &.result.hit { - padding: 0; - } +.result, +.recent { + display: flex; + flex-direction: column; + overflow: auto; + height: 100%; - &.recent { - padding: 0; - } + &.result.hit { + padding: 0; + } - > .users { - flex: 1; - overflow: auto; - padding: 8px 0; + &.recent { + padding: 0; + } +} - > .user { - display: flex; - align-items: center; - padding: 8px var(--root-margin); - font-size: 14px; +.users { + flex: 1; + overflow: auto; + padding: 8px 0; +} - &:hover { - background: var(--X7); - } +.user { + display: flex; + align-items: center; + padding: 8px var(--root-margin); + font-size: 14px; - &.selected { - background: var(--accent); - color: #fff; - } + &:hover { + background: var(--X7); + } - > * { - pointer-events: none; - user-select: none; - } + &.selected { + background: var(--accent); + color: #fff; + } +} - > .avatar { - width: 45px; - height: 45px; - } +.userBody { + padding: 0 8px; + min-width: 0; +} - > .body { - padding: 0 8px; - min-width: 0; +.avatar { + width: 45px; + height: 45px; +} - > .name { - display: block; - font-weight: bold; - } +.userName { + display: block; + font-weight: bold; +} - > .acct { - opacity: 0.5; - } - } - } - } +.userAcct { + opacity: 0.5; +} - > .empty { - opacity: 0.7; - text-align: center; - } - } +.empty { + opacity: 0.7; + text-align: center; + padding: 16px; } </style> |