UNPKG

@nnc-digital/nnc-design-system

Version:

Design system for West & North Northamptonshire Councils, two unitary councils encompassing Wellingborough, Corby, Daventry, East Northants, Kettering, Northampton, Northamptonshire County and South Northants.

207 lines (206 loc) 4.33 kB
import React from 'react'; import { FileDownloadProps } from '../../components/FileDownload/FileDownload.types'; import { SocialProfile } from '../../directory/ServiceSocialLinks/ServiceSocialLinks.types'; import { ServiceContactProps } from '../../directory/ServiceContact/ServiceContact.types'; export interface EventProps { /** * The unique event id */ id: string; /** * The event name/title */ name: string; /** * The description as a plain HTML string */ description: string; /** * The description as a react node */ descriptionElement?: React.ReactNode; /** * The event start date and time in ISO format */ startDateTime: string; /** * The event end date and time in ISO format */ endDateTime?: string; /** * The event type/category */ eventType?: string; /** * The target audience for the event */ audience?: string[]; /** * The organization hosting the event */ organization: EventOrganizationProps; /** * Event location information */ location?: EventLocationProps; /** * The optional service email address */ email?: string; /** * The optional costs of the event */ fees?: string; /** * The event website address */ url?: string; /** * The event website url title */ websiteUrlTitle?: string; /** * An array of contacts with phone numbers */ contacts?: ServiceContactProps[]; /** * An optional array of files/links belonging to the event */ uploads?: FileDownloadProps[]; /** * An optional array of social profile links */ socialProfiles?: SocialProfile[]; /** * When the event was updated. Expected format YYYY-MM-DD */ updatedAt?: string; /** * The url to the shortlist */ shortListPath?: string; /** * Is this event recurring? */ isRecurring?: boolean; /** * Recurrence pattern information */ recurrencePattern?: string; /** * Registration deadline */ registrationDeadline?: string; /** * Maximum capacity for the event */ capacity?: number; /** * Current number of registered attendees */ currentAttendees?: number; } export interface EventOrganizationProps { /** * The unique identifier for the organization */ id: string; /** * The name of the organization */ name: string; /** * The description of the organization */ description?: string; /** * The full path to the organization logo */ logo?: string; /** * The organization website address */ url?: string; } export interface EventLocationProps { /** * The unique identifier for the location */ id: number; /** * The name of the location */ name: string; /** * The optional description */ description?: string; /** * Is the location visitable by the public? */ isVisitable?: boolean; /** * The latitude of the location */ latitude?: string; /** * The longitude of the location */ longitude?: string; /** * The address information */ address?: EventAddressProps; /** * An array of facilities that the location offers */ accessibility?: EventAccessibilityProps[]; /** * Is this a virtual/online event? */ isVirtual?: boolean; /** * Virtual meeting link/information */ virtualMeetingInfo?: string; } export interface EventAddressProps { /** * The unique identifier */ id: number; /** * The street number and address line 1 */ address1: string; /** * Address line 2 */ address2?: string; /** * The city */ city: string; /** * The county */ county: string; /** * The postcode */ postcode: string; /** * The country */ country: string; } export interface EventAccessibilityProps { /** * The unique identifier */ id: number; /** * The name of the facility offered by the location */ accessibility: string; }