avatar.stories.tsx (2550B)
1 import { Meta, StoryObj } from '@storybook/react'; 2 import Avatar from './avatar'; 3 import { OnlineState } from '../../app/sdk/api/otherEnums'; 4 5 const meta: Meta<typeof Avatar> = { 6 title: 'Chat/Avatar', 7 component: Avatar, 8 argTypes: { 9 avatarUrl: { 10 required: false, 11 name: "Avatar URL", 12 description: "The URL of the avatar image", 13 }, 14 displayname: { 15 required: true, 16 name: "User ID", 17 description: "The DISPLAY name of the User", 18 }, 19 dm: { 20 required: false, 21 defaultValue: false, 22 control: "boolean", 23 name: "DM", 24 description: "Wether the Avatar is used for a DM", 25 }, 26 online: { 27 required: false, 28 defaultValue: false, 29 control: "boolean", 30 name: "Online", 31 description: "Wether the user is online. Only used if dm is true", 32 }, 33 } 34 }; 35 36 export default meta; 37 type Story = StoryObj<typeof Avatar>; 38 39 export const Fallback: Story = { 40 args: { 41 displayname: "test", 42 dm: false, 43 online: OnlineState.Unknown, 44 avatarUrl: "" 45 } 46 }; 47 48 export const Image: Story = { 49 args: { 50 displayname: "test", 51 avatarUrl: "https://randomuser.me/api/portraits/men/62.jpg", 52 dm: false, 53 online: OnlineState.Unknown, 54 } 55 }; 56 57 export const DMOffline: Story = { 58 args: { 59 displayname: "test", 60 avatarUrl: "https://randomuser.me/api/portraits/men/62.jpg", 61 dm: true, 62 online: OnlineState.Offline, 63 } 64 }; 65 66 67 export const DMUnknown: Story = { 68 args: { 69 displayname: "test", 70 avatarUrl: "https://randomuser.me/api/portraits/men/62.jpg", 71 dm: true, 72 online: OnlineState.Unknown, 73 } 74 }; 75 76 export const DMOnline: Story = { 77 args: { 78 displayname: "test", 79 avatarUrl: "https://randomuser.me/api/portraits/men/62.jpg", 80 dm: true, 81 online: OnlineState.Online, 82 } 83 }; 84 85 export const DMNoAvatarOffline: Story = { 86 args: { 87 displayname: "test", 88 avatarUrl: "", 89 dm: true, 90 online: OnlineState.Offline, 91 } 92 }; 93 94 export const DMNoAvatarUnknown: Story = { 95 args: { 96 displayname: "test", 97 avatarUrl: "", 98 dm: true, 99 online: OnlineState.Unknown, 100 } 101 }; 102 103 export const DMNoAvatarOnline: Story = { 104 args: { 105 displayname: "test", 106 avatarUrl: "", 107 dm: true, 108 online: OnlineState.Online, 109 } 110 };