mirror of
https://github.com/modrinth/code.git
synced 2026-08-30 11:36:05 +00:00
feat: hosting access tab (#5995)
* feat: implement access tab with dummy data * fix: spacing * feat: qa * feat: implement backend * qa: qa pass * feat: fix user "search" * fix: lint * feat: change to bitfield * feat: fix fields * fix: lint * fix: lint * feat: hook up api * feat: fix permissions * feat: audit log table event start * feat: better mobile mode for audit log table * feat: i18n * feat: qa * feat: enforce permissions * feat: email template start * feat: qa * fix: tooltip bug * feat: qa * impl: sse support in api-client * feat: sse impl * fix: desync path * feat: time frame picker from analytics * feat: QA * fix: spacing * fix: permisison audit log entries * fix: hosting manage page shared server detection * fix: lint * feat: qa + lint * feat: audit log table sort by time * feat: finish frontend panel stuff * fix: lint * fix: backend alignment * fix: lint * fix: supress friend errors * feat: qa * fix: qa * fix: lint * fix: utils barrel * fix: safari cookies in dev * fix: pin nuxt * feat: fixes + notif fix * fix: notifications * feat: qa * fix: notification sync not happening immediately * fix: qa * fix: qa * feat: qa * blog + prepr * feat: toast shit * blog images * thumbnail update one last time * prepr * feat: use reinvite route * update images * fix: reinvite stuff * fix: lint * fix: alignment of save bar * fix: notif sizing * fix: split up access * fix: lint * fix: lint * fix: link --------- Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
This commit is contained in:
@@ -0,0 +1,159 @@
|
||||
import { MinecraftServerIcon } from '@modrinth/assets'
|
||||
import type { Meta, StoryObj } from '@storybook/vue3-vite'
|
||||
|
||||
import { NotificationToast } from '../../components/notifications'
|
||||
|
||||
const avatarUrl =
|
||||
'https://cdn.modrinth.com/user/6Qo4A5QT/9d81be1a9fb1afd163b7f2f05a791955e7693c90.png'
|
||||
|
||||
const meta = {
|
||||
title: 'Notifications/Toasts',
|
||||
parameters: {
|
||||
layout: 'centered',
|
||||
},
|
||||
decorators: [
|
||||
(story) => ({
|
||||
components: { story },
|
||||
template:
|
||||
'<div class="dark-mode flex w-[436px] flex-col gap-4 bg-surface-1 p-2"><story /></div>',
|
||||
}),
|
||||
],
|
||||
} satisfies Meta
|
||||
|
||||
export default meta
|
||||
type Story = StoryObj<typeof meta>
|
||||
|
||||
const noop = () => console.log('Notification action')
|
||||
|
||||
export const FigmaExamples: Story = {
|
||||
render: () => ({
|
||||
components: { NotificationToast },
|
||||
setup() {
|
||||
return {
|
||||
avatarUrl,
|
||||
instanceIconUrl: MinecraftServerIcon,
|
||||
noop,
|
||||
}
|
||||
},
|
||||
template: /* html */ `
|
||||
<div class="flex flex-col gap-4">
|
||||
<NotificationToast
|
||||
type="friend-request"
|
||||
actor-name="Fetch"
|
||||
:actor-avatar-url="avatarUrl"
|
||||
@accept="noop"
|
||||
@decline="noop"
|
||||
@dismiss="noop"
|
||||
/>
|
||||
<NotificationToast
|
||||
type="server-invite"
|
||||
actor-name="Fetch"
|
||||
:actor-avatar-url="avatarUrl"
|
||||
entity-name="Modrinth SMP"
|
||||
@accept="noop"
|
||||
@decline="noop"
|
||||
@dismiss="noop"
|
||||
@open-actor="noop"
|
||||
/>
|
||||
<NotificationToast
|
||||
type="instance-invite"
|
||||
actor-name="Fetch"
|
||||
:actor-avatar-url="avatarUrl"
|
||||
entity-name="New Creation"
|
||||
:entity-icon-url="instanceIconUrl"
|
||||
@accept="noop"
|
||||
@decline="noop"
|
||||
@dismiss="noop"
|
||||
@open-actor="noop"
|
||||
/>
|
||||
<NotificationToast
|
||||
type="instance-download"
|
||||
entity-name="New Creation"
|
||||
:entity-icon-url="instanceIconUrl"
|
||||
status-text="Downloading Minecraft..."
|
||||
:progress="0.5"
|
||||
@dismiss="noop"
|
||||
/>
|
||||
<NotificationToast
|
||||
type="instance-ready"
|
||||
entity-name="New Creation"
|
||||
:entity-icon-url="instanceIconUrl"
|
||||
:progress="0.75"
|
||||
@launch="noop"
|
||||
@open-instance="noop"
|
||||
@dismiss="noop"
|
||||
/>
|
||||
</div>
|
||||
`,
|
||||
}),
|
||||
}
|
||||
|
||||
export const ServerInvite: Story = {
|
||||
render: () => ({
|
||||
components: { NotificationToast },
|
||||
setup() {
|
||||
return {
|
||||
avatarUrl,
|
||||
instanceIconUrl: MinecraftServerIcon,
|
||||
noop,
|
||||
}
|
||||
},
|
||||
template: /* html */ `
|
||||
<NotificationToast
|
||||
type="server-invite"
|
||||
actor-name="Fetch"
|
||||
:actor-avatar-url="avatarUrl"
|
||||
entity-name="Modrinth SMP"
|
||||
@accept="noop"
|
||||
@decline="noop"
|
||||
@dismiss="noop"
|
||||
@open-actor="noop"
|
||||
/>
|
||||
`,
|
||||
}),
|
||||
}
|
||||
|
||||
export const MissingAvatarFallback: Story = {
|
||||
render: () => ({
|
||||
components: { NotificationToast },
|
||||
setup() {
|
||||
return {
|
||||
instanceIconUrl: MinecraftServerIcon,
|
||||
noop,
|
||||
}
|
||||
},
|
||||
template: /* html */ `
|
||||
<NotificationToast
|
||||
type="server-invite"
|
||||
actor-name="Fetch"
|
||||
entity-name="Modrinth SMP"
|
||||
@accept="noop"
|
||||
@decline="noop"
|
||||
@dismiss="noop"
|
||||
@open-actor="noop"
|
||||
/>
|
||||
`,
|
||||
}),
|
||||
}
|
||||
|
||||
export const WaitingDownload: Story = {
|
||||
render: () => ({
|
||||
components: { NotificationToast },
|
||||
setup() {
|
||||
return {
|
||||
instanceIconUrl: MinecraftServerIcon,
|
||||
noop,
|
||||
}
|
||||
},
|
||||
template: /* html */ `
|
||||
<NotificationToast
|
||||
type="instance-download"
|
||||
entity-name="New Creation"
|
||||
:entity-icon-url="instanceIconUrl"
|
||||
status-text="Preparing files..."
|
||||
waiting
|
||||
@dismiss="noop"
|
||||
/>
|
||||
`,
|
||||
}),
|
||||
}
|
||||
Reference in New Issue
Block a user