25 lines
646 B
TypeScript
25 lines
646 B
TypeScript
import type { ReactNode } from 'react'
|
|
import type {
|
|
AnnouncementDto,
|
|
EventDto,
|
|
IntranetDashboardDto,
|
|
SurveyDto,
|
|
} from '@/proxy/intranet/models'
|
|
|
|
export type DashboardWidgetColumn = 'left' | 'center' | 'right'
|
|
|
|
export interface DashboardWidgetContext {
|
|
dashboard?: IntranetDashboardDto
|
|
openAnnouncement: (announcement: AnnouncementDto) => void
|
|
openEvent: (event: EventDto) => void
|
|
takeSurvey: (survey: SurveyDto) => void
|
|
}
|
|
|
|
export interface DashboardWidgetDefinition {
|
|
id: string
|
|
permission: string
|
|
column: DashboardWidgetColumn
|
|
labelKey: string
|
|
order: number
|
|
render: (context: DashboardWidgetContext) => ReactNode
|
|
}
|