Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

More customisable SessionTile #70

Open
robb-j opened this issue Jan 13, 2022 · 1 comment
Open

More customisable SessionTile #70

robb-j opened this issue Jan 13, 2022 · 1 comment
Labels
enhancement New feature or request

Comments

@robb-j
Copy link
Member

robb-j commented Jan 13, 2022

The arrangement of SessionTile needs to be more configurable for the different uses it now has. These configurations should be able to be set from a containing component like a ScheduleView or WhatsOnView so each use of those components can have different SessionTile arrangement.

Each bit of the component (title, header, footer, speakers & content) should be toggle-able to be turned on/off. The current customisation of the header & footer should stay the same.

The decision of wether to make a session large/small should also be configurable at this point, so the layout field SessionType can be deprecated as it is a bit of a lost legacy field that doesn't make sense anymore. Instead it should be configured which session types should be made large/small at this level, rather than by a SessionType. This would mean different ScheduleView instances could highlight different sessions if they liked.

It might also be useful to configure the SessionTile for each the larger (plenary) and smaller (workshop) renderings to create nicer designs.

Wether to collapse workshop types or not should also be configurable here too.

It could control which actions are allowed to be shown next to a SessionTile

type HeaderAttrs = 'type' | 'track' | 'themes'
type FooterAttrs = 'type' | 'track' | 'themes' | 'languages' | 'recorded' | 'organisation'
type SessionAction = 'calendar' | 'interest' | 'open'

interface SessionTileConfig {
  title: { enabled: boolean, maxLength?: number }
  content: { enabled: boolean, maxLength?: number }
  speakers: { enabled: boolean, maxSpeakers?: number }
  header: { enabled: boolean, attributes: HeaderAttrs[] }
  footer: { enabled: boolean, attributes: FooterAttrs[] }
  actions: { enabled: boolean, actions: SessionAction[] } 
}

interface SessionViewConfig {
  featuredTile: SessionTileConfig
  tile: SessionTileConfig
  featuredTypes: string[]
  collapseTiles: boolean
}
@robb-j robb-j added the enhancement New feature or request label Jan 13, 2022
@robb-j
Copy link
Member Author

robb-j commented Feb 11, 2022

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant