diff --git a/webapp/src/components/rhs/all_badges.scss b/webapp/src/components/rhs/all_badges.scss index ad174ef..a84fb9f 100644 --- a/webapp/src/components/rhs/all_badges.scss +++ b/webapp/src/components/rhs/all_badges.scss @@ -60,24 +60,6 @@ &__tabs { display: flex; gap: 0; - flex-shrink: 1; - min-width: 0; - overflow-x: auto; - -webkit-overflow-scrolling: touch; - padding-bottom: 2px; - - &::-webkit-scrollbar { - height: 3px; - } - - &::-webkit-scrollbar-track { - background: transparent; - } - - &::-webkit-scrollbar-thumb { - background: rgba(var(--center-channel-color-rgb, 61, 60, 64), 0.2); - border-radius: 3px; - } } &__tab { @@ -122,21 +104,39 @@ color: var(--center-channel-color, #3d3c40); } - &__createButton { + &__content { + position: relative; + display: flex; + flex-flow: column; + flex: 1; + min-height: 0; + + > .badge-tooltip-wrapper { + position: absolute; + bottom: 12px; + right: 14px; + z-index: 10; + } + } + + &__fab { + width: 26px; + height: 26px; + border-radius: 50%; background: var(--button-bg, #166de0); color: var(--button-color, #fff); border: none; - border-radius: 4px; - padding: 4px 10px; - font-size: 12px; - font-weight: 600; + font-size: 16px; + line-height: 1; + display: flex; + align-items: center; + justify-content: center; cursor: pointer; - white-space: nowrap; - flex-shrink: 0; - margin-bottom: 7px; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2); + transition: transform 0.15s, box-shadow 0.15s; &:hover { - opacity: 0.88; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25); } } } diff --git a/webapp/src/components/rhs/index.tsx b/webapp/src/components/rhs/index.tsx index c0b4db2..e9d4e20 100644 --- a/webapp/src/components/rhs/index.tsx +++ b/webapp/src/components/rhs/index.tsx @@ -22,6 +22,8 @@ import {openCreateBadgeModal, openCreateTypeModal, openEditBadgeModal, setRHSBad import {BadgeDetails, BadgeID} from 'types/badges'; import Client from '../../client/api'; +import TooltipWrapper from '../user_popover/tooltip_wrapper'; + import UserBadges from './user_badges'; import BadgeDetailsComponent from './badge_details'; import AllBadges from './all_badges'; @@ -101,32 +103,52 @@ const RHS: React.FC = () => { )} - {currentView === RHS_STATE_ALL && canCreateBadge && ( - - )} - {currentView === RHS_STATE_TYPES && canCreateType && ( - - )} ); }; + const renderFab = () => { + if (currentView === RHS_STATE_ALL && canCreateBadge) { + return ( + + } + > + + + ); + } + if (currentView === RHS_STATE_TYPES && canCreateType) { + return ( + + } + > + + + ); + } + return null; + }; + const renderContent = () => { switch (currentView) { case RHS_STATE_TYPES: @@ -205,7 +227,10 @@ const RHS: React.FC = () => { return (
{renderTabs()} - {renderContent()} +
+ {renderContent()} + {renderFab()} +
); }