diff --git a/app/javascript/dashboard/components/widgets/Avatar.vue b/app/javascript/dashboard/components/widgets/Avatar.vue index 1d67842a2..daf044288 100644 --- a/app/javascript/dashboard/components/widgets/Avatar.vue +++ b/app/javascript/dashboard/components/widgets/Avatar.vue @@ -40,13 +40,18 @@ export default { type: Boolean, default: true, }, + variant: { + type: String, + default: 'circle', + }, }, computed: { style() { let style = { width: `${this.size}px`, height: `${this.size}px`, - borderRadius: this.rounded ? '50%' : 0, + borderRadius: + this.variant === 'square' ? 'var(--border-radius-large)' : '50%', lineHeight: `${this.size + Math.floor(this.size / 20)}px`, fontSize: `${Math.floor(this.size / 2.5)}px`, }; diff --git a/app/javascript/dashboard/components/widgets/Thumbnail.stories.js b/app/javascript/dashboard/components/widgets/Thumbnail.stories.js new file mode 100644 index 000000000..a6fc55f8a --- /dev/null +++ b/app/javascript/dashboard/components/widgets/Thumbnail.stories.js @@ -0,0 +1,61 @@ +import Thumbnail from './Thumbnail.vue'; + +export default { + title: 'Components/Thumbnail', + component: Thumbnail, + argTypes: { + src: { + control: { + type: 'text', + }, + }, + size: { + control: { + type: 'text', + }, + }, + badge: { + control: { + type: 'select', + options: ['fb', 'whatsapp', 'sms', 'twitter-tweet', 'twitter-dm'], + }, + }, + variant: { + control: { + type: 'select', + options: ['circle', 'square'], + }, + }, + username: { + defaultValue: 'John Doe', + control: { + type: 'text', + }, + }, + status: { + defaultValue: 'circle', + control: { + type: 'select', + options: ['online', 'busy'], + }, + }, + hasBorder: { + control: { + type: 'boolean', + }, + }, + shouldShowStatusAlways: { + control: { + type: 'boolean', + }, + }, + }, +}; + +const Template = (args, { argTypes }) => ({ + props: Object.keys(argTypes), + components: { Thumbnail }, + template: '{{label}}', +}); + +export const Primary = Template.bind({}); diff --git a/app/javascript/dashboard/components/widgets/Thumbnail.vue b/app/javascript/dashboard/components/widgets/Thumbnail.vue index d12a927ef..ea0e0f99a 100644 --- a/app/javascript/dashboard/components/widgets/Thumbnail.vue +++ b/app/javascript/dashboard/components/widgets/Thumbnail.vue @@ -12,6 +12,7 @@ :username="username" :class="thumbnailClass" :size="avatarSize" + :variant="variant" />