aboutsummaryrefslogtreecommitdiff
path: root/src/components/react_button/react_button.vue
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/react_button/react_button.vue')
-rw-r--r--src/components/react_button/react_button.vue129
1 files changed, 69 insertions, 60 deletions
diff --git a/src/components/react_button/react_button.vue b/src/components/react_button/react_button.vue
index ac940b98..c69c315b 100644
--- a/src/components/react_button/react_button.vue
+++ b/src/components/react_button/react_button.vue
@@ -1,15 +1,14 @@
<template>
<Popover
trigger="click"
+ class="ReactButton"
placement="top"
:offset="{ y: 5 }"
:bound-to="{ x: 'container' }"
remove-padding
+ @show="focusInput"
>
- <div
- slot="content"
- slot-scope="{close}"
- >
+ <template v-slot:content="{close}">
<div class="reaction-picker-filter">
<input
v-model="filterWord"
@@ -39,17 +38,18 @@
</span>
<div class="reaction-bottom-fader" />
</div>
- </div>
- <span
- slot="trigger"
- class="ReactButton"
- :title="$t('tool_tip.add_reaction')"
- >
- <FAIcon
- class="fa-scale-110 fa-old-padding"
- :icon="['far', 'smile-beam']"
- />
- </span>
+ </template>
+ <template v-slot:trigger>
+ <button
+ class="button-unstyled popover-trigger"
+ :title="$t('tool_tip.add_reaction')"
+ >
+ <FAIcon
+ class="fa-scale-110 fa-old-padding"
+ :icon="['far', 'smile-beam']"
+ />
+ </button>
+ </template>
</Popover>
</template>
@@ -58,62 +58,71 @@
<style lang="scss">
@import '../../_variables.scss';
-.reaction-picker-filter {
- padding: 0.5em;
- display: flex;
- input {
- flex: 1;
+.ReactButton {
+ .reaction-picker-filter {
+ padding: 0.5em;
+ display: flex;
+
+ input {
+ flex: 1;
+ }
}
-}
-.reaction-picker-divider {
- height: 1px;
- width: 100%;
- margin: 0.5em;
- background-color: var(--border, $fallback--border);
-}
+ .reaction-picker-divider {
+ height: 1px;
+ width: 100%;
+ margin: 0.5em;
+ background-color: var(--border, $fallback--border);
+ }
-.reaction-picker {
- width: 10em;
- height: 9em;
- font-size: 1.5em;
- overflow-y: scroll;
- display: flex;
- flex-wrap: wrap;
- padding: 0.5em;
- text-align: center;
- align-content: flex-start;
- user-select: none;
+ .reaction-picker {
+ width: 10em;
+ height: 9em;
+ font-size: 1.5em;
+ overflow-y: scroll;
+ display: flex;
+ flex-wrap: wrap;
+ padding: 0.5em;
+ text-align: center;
+ align-content: flex-start;
+ user-select: none;
- mask: linear-gradient(to top, white 0, transparent 100%) bottom no-repeat,
- linear-gradient(to bottom, white 0, transparent 100%) top no-repeat,
- linear-gradient(to top, white, white);
- transition: mask-size 150ms;
- mask-size: 100% 20px, 100% 20px, auto;
- // Autoprefixed seem to ignore this one, and also syntax is different
- -webkit-mask-composite: xor;
- mask-composite: exclude;
+ mask: linear-gradient(to top, white 0, transparent 100%) bottom no-repeat,
+ linear-gradient(to bottom, white 0, transparent 100%) top no-repeat,
+ linear-gradient(to top, white, white);
+ transition: mask-size 150ms;
+ mask-size: 100% 20px, 100% 20px, auto;
- .emoji-button {
- cursor: pointer;
+ /* Autoprefixed seem to ignore this one, and also syntax is different */
+ -webkit-mask-composite: xor;
+ mask-composite: exclude;
- flex-basis: 20%;
- line-height: 1.5em;
- align-content: center;
+ .emoji-button {
+ cursor: pointer;
- &:hover {
- transform: scale(1.25);
+ flex-basis: 20%;
+ line-height: 1.5em;
+ align-content: center;
+
+ &:hover {
+ transform: scale(1.25);
+ }
}
}
-}
-.ReactButton {
- padding: 10px;
- margin: -10px;
+ /* override of popover internal stuff */
+ .popover-trigger-button {
+ width: auto;
+ }
+
+ .popover-trigger {
+ padding: 10px;
+ margin: -10px;
- &:hover .svg-inline--fa {
- color: $fallback--text;
- color: var(--text, $fallback--text);
+ &:hover .svg-inline--fa {
+ color: $fallback--text;
+ color: var(--text, $fallback--text);
+ }
}
}