1
1
import db from '../db'
2
2
import { defineEventHandler } from 'h3'
3
- import type { Speaker , SpeakerInfo } from '@vuejs-jp/model'
3
+ import type { PanelerInfo , Speaker , SpeakerInfo } from '@vuejs-jp/model'
4
4
import { serverSupabaseClient } from '#supabase/server'
5
5
import { Database } from '~/types/supabase'
6
6
@@ -64,9 +64,39 @@ export default defineEventHandler(async (event) => {
64
64
} ) ,
65
65
}
66
66
67
+ const panelEventPanelers : PanelerInfo = {
68
+ type : 'panel-event' ,
69
+ title : 'Panel Event' ,
70
+ list : {
71
+ 'welcome-vuejs-community' : speakers
72
+ . filter ( ( s : Speaker ) => {
73
+ if ( ! s [ 'events' ] ) return false
74
+ if ( process . env . NODE_ENV === 'production' ) return s [ 'events' ] . includes ( 'welcome-vuejs-community' ) && s . is_open === true
75
+ return s [ 'events' ] . includes ( 'welcome-vuejs-community' )
76
+ } )
77
+ . sort ( ( a : Speaker , b : Speaker ) => {
78
+ if ( ! a . display_order ) return a . created_at < b . created_at ? - 1 : 1
79
+ if ( ! b . display_order ) return a . created_at < b . created_at ? - 1 : 1
80
+ return a . display_order - b . display_order
81
+ } ) ,
82
+ 'nextgen-frontend-crosstalk' : speakers
83
+ . filter ( ( s : Speaker ) => {
84
+ if ( ! s [ 'events' ] ) return false
85
+ if ( process . env . NODE_ENV === 'production' ) return s [ 'events' ] . includes ( 'nextgen-frontend-crosstalk' ) && s . is_open === true
86
+ return s [ 'events' ] . includes ( 'nextgen-frontend-crosstalk' )
87
+ } )
88
+ . sort ( ( a : Speaker , b : Speaker ) => {
89
+ if ( ! a . display_order ) return a . created_at < b . created_at ? - 1 : 1
90
+ if ( ! b . display_order ) return a . created_at < b . created_at ? - 1 : 1
91
+ return a . display_order - b . display_order
92
+ } ) ,
93
+ } ,
94
+ }
95
+
67
96
return {
68
97
sessionSpeakers,
69
98
lightningTalkSpeakers,
70
99
sponsorSessionSpeakers,
100
+ panelEventPanelers,
71
101
}
72
102
} )
0 commit comments