@@ -4,40 +4,38 @@ import { api } from 'trpc/server';
44import { IconMail } from '@tabler/icons-react' ;
55import ActionIcon from 'components/input/action-icon' ;
66
7-
87const styrelseOrder : Dictionary < number > = {
9- " Ordförande" : 1 ,
10- " ViceOrdförande" : 2 ,
11- " Sekreterare" : 3 ,
12- " Kassör" : 4 ,
8+ Ordförande : 1 ,
9+ ViceOrdförande : 2 ,
10+ Sekreterare : 3 ,
11+ Kassör : 4 ,
1312} ;
1413
15-
16- const Positions = async ( ) => {
14+ const InfoPage = async ( ) => {
1715 const roles = await api . permission . getRoles . query ( ) ;
1816 const ordoredBoardCorps = await Promise . all (
1917 roles
20- . filter ( role => Object . keys ( styrelseOrder ) . includes ( role . name ) )
18+ . filter ( ( role ) => Object . keys ( styrelseOrder ) . includes ( role . name ) )
2119 . sort ( ( a , b ) => styrelseOrder [ a . name ] - styrelseOrder [ b . name ] )
22- . flatMap ( role =>
20+ . flatMap ( ( role ) =>
2321 role . corpsii . map ( async ( corps ) => {
2422 const result = await api . corps . get . query ( { id : corps . id } ) ;
25- if ( ! result ) throw new Error ( " Corps not found" ) ;
23+ if ( ! result ) throw new Error ( ' Corps not found' ) ;
2624 return result ;
27- } )
28- )
25+ } ) ,
26+ ) ,
2927 ) ;
3028
31- const TrivselCorps = await Promise . all (
29+ const trivselCorps = await Promise . all (
3230 roles
33- . filter ( role => role . name === " Trivselombud" )
34- . flatMap ( role =>
31+ . filter ( ( role ) => role . name === ' Trivselombud' )
32+ . flatMap ( ( role ) =>
3533 role . corpsii . map ( async ( corps ) => {
3634 const result = await api . corps . get . query ( { id : corps . id } ) ;
37- if ( ! result ) throw new Error ( " Corps not found" ) ;
35+ if ( ! result ) throw new Error ( ' Corps not found' ) ;
3836 return result ;
39- } )
40- )
37+ } ) ,
38+ ) ,
4139 ) ;
4240
4341 return (
@@ -46,31 +44,37 @@ const Positions = async () => {
4644 < div className = 'max-w-4xl' >
4745 < div className = 'flex flex-col space-y-2 p-4' >
4846 < h3 > { lang ( 'Styrelsen' , 'The Board' ) } </ h3 >
49- { lang ( `Styrelsen leder Bleckhornen under ett verksamhetsår. Tillsammans med dirigenter,
47+ { lang (
48+ `Styrelsen leder Bleckhornen under ett verksamhetsår. Tillsammans med dirigenter,
5049 balettledare, utskottsmedlemmar och andra förtroendevalda ansvarar styrelsen för planering
5150 av repor, spelningar, sittningar, konserter, resor och andra aktiviteter. Detta görs med stöd och
5251 samarbete med hela corpset` ,
5352
5453 `The board leads Bleckhornen throughout the year. Together with conductors, ballet leaders,
5554 committee members, and other elected representatives, the board is responsible for planning
5655 rehearsals, performances, formal sittings, concerts, trips, and other activities. This is done
57- with the support and collaboration of the entire corps.` ) }
56+ with the support and collaboration of the entire corps.` ,
57+ ) }
5858 < div className = 'grid grid-cols-2 gap-4' >
5959 { ordoredBoardCorps . map ( ( corps ) => (
60- < div className = 'rounded border shadow-md dark:border-neutral-800 flex flex-col p-2 text-left text-sm' >
61- { corps . roles . filter ( role => Object . keys ( styrelseOrder ) . includes ( role . name ) ) [ 0 ] ?. name }
60+ < div className = 'flex flex-col rounded border p-2 text-left text-sm shadow-md dark:border-neutral-800' >
61+ {
62+ corps . roles . filter ( ( role ) =>
63+ Object . keys ( styrelseOrder ) . includes ( role . name ) ,
64+ ) [ 0 ] ?. name
65+ }
6266 < PositionInfobox corps = { corps } />
6367 </ div >
64- ) )
65- }
68+ ) ) }
6669 </ div >
6770 </ div >
6871 </ div >
6972
7073 < div className = 'max-w-4xl' >
7174 < div className = 'flex flex-col space-y-2 p-4' >
7275 < h3 > Trivselombud</ h3 >
73- { lang ( `Trivselombuden i Bleckhornen har i uppdrag att bidra till trivsel och trygghet inom
76+ { lang (
77+ `Trivselombuden i Bleckhornen har i uppdrag att bidra till trivsel och trygghet inom
7478 föreningen. Till oss kan du komma om du känner att du har upplevt något inom Bleckhornen
7579 som känns fel, eller om du känner att du behöver stöd eller prata om något. Trivselombuden
7680 kan du alltid komma pch prata med när du känner för det, men du kan också kontakta oss via
@@ -80,34 +84,36 @@ const Positions = async () => {
8084 safety within the association. You can come to us if you've experienced something within
8185 Bleckhornen that feels wrong, or if you feel that you need support or just someone to talk to.
8286 You can always approach the Wellbeing Representatives whenever you feel the need, but you
83- can also contact us through our forms, where there is also an option to remain anonymous.` ) }
84- { roles . filter ( ( role ) => (
85- role . name == "Trivselombud"
86- ) ) . map ( ( role ) => (
87- < div key = { role . id } className = 'grid grid-cols-2 gap-4' >
88- { TrivselCorps . map ( ( corps ) => (
89- < div className = 'rounded border shadow-md dark:border-neutral-800 flex flex-col p-2 text-left text-sm' >
90- < PositionInfobox corps = { corps } / >
91- </ div >
92- ) )
93- }
94- </ div >
95- ) ) }
87+ can also contact us through our forms, where there is also an option to remain anonymous.` ,
88+ ) }
89+ { roles
90+ . filter ( ( role ) => role . name == 'Trivselombud' )
91+ . map ( ( role ) => (
92+ < div key = { role . id } className = 'grid grid-cols-2 gap-4' >
93+ { trivselCorps . map ( ( corps ) => (
94+ < div className = 'flex flex-col rounded border p-2 text-left text-sm shadow-md dark:border-neutral-800' >
95+ < PositionInfobox corps = { corps } / >
96+ </ div >
97+ ) ) }
98+ </ div >
99+ ) ) }
96100 </ div >
97101 </ div >
98102
99103 < div className = 'max-w-4xl' >
100104 < div className = 'flex flex-col space-y-2 p-4' >
101105 < h3 > Utskott</ h3 >
102- { lang ( `I Bleckhornen finns flera utskott, där varje utskott har sina specifika uppgifter.
106+ { lang (
107+ `I Bleckhornen finns flera utskott, där varje utskott har sina specifika uppgifter.
103108 Tillsammans ser de till att föreningen fungerar smidigt och utvecklas.
104109 Det finns ett utskott för alla, där din kreativitet och personlighet får flöda.
105110 Samtidigt får du även chansen att lära känna personer från olika sektioner.` ,
106111
107112 `In Bleckhornen, there are several committees, each with its own specific tasks.
108113 Together, they ensure that the association runs smoothly and continues to develop.
109114 There’s a committee for everyone, where your creativity and personality can shine.
110- At the same time, you also get the chance to meet and get to know people from different sections.` ) }
115+ At the same time, you also get the chance to meet and get to know people from different sections.` ,
116+ ) }
111117
112118 < div className = 'flex gap-1' >
113119 < h4 > Notmarskeriet</ h4 >
@@ -118,7 +124,8 @@ const Positions = async () => {
118124 < IconMail />
119125 </ ActionIcon >
120126 </ div >
121- { lang ( `Notmarskeriet ansvarar för alla Bleckhornens noter. Detta innebär att vi skriver ut 📠, sätter
127+ { lang (
128+ `Notmarskeriet ansvarar för alla Bleckhornens noter. Detta innebär att vi skriver ut 📠, sätter
122129 in 📒, och arkiverar ️ alla de noter som finns i våra pärmar och häften! Arbetsbördan som
123130 notmarsk är generellt koncentrerad runt julkonserten och karnevalerna, och då kan den vara
124131 rätt stor, men under den tidiga hösten och samt så gott som hela våren de år Lund ej gästas av
@@ -129,7 +136,8 @@ const Positions = async () => {
129136 found in our folders and booklets! A note marshal's workload is typically concentrated
130137 around the Christmas concert and the Karnevals, and at those points it can be a bit, but early
131138 Autumn and basically all of the spring semester (on non-karneval years) are typically very
132- free` ) }
139+ free` ,
140+ ) }
133141
134142 < div className = 'flex gap-1' >
135143 < h4 > Arkivet</ h4 >
@@ -140,15 +148,17 @@ const Positions = async () => {
140148 < IconMail />
141149 </ ActionIcon >
142150 </ div >
143- { lang ( `Arkivet är utskottet som förevigar allt skoj! Vi ser till att spara minnen från det roliga vi gör,
151+ { lang (
152+ `Arkivet är utskottet som förevigar allt skoj! Vi ser till att spara minnen från det roliga vi gör,
144153 bland annat i form av bilder, filmer och affischer som corps har producerat. Vi sparar också
145154 resultat av det slit andra funktionärer lägger ner, som corpset skulle kunna behöva i
146155 framtiden.` ,
147156
148157 `The Archive is the committee that immortalizes all the fun! We make sure to preserve
149158 memories from all the enjoyable things we do. For example, in the form of photos, videos,
150159 and posters produced by the corps. We also keep the results of the hard work put in by other
151- functionaries, which the corps might need in the future.` ) }
160+ functionaries, which the corps might need in the future.` ,
161+ ) }
152162
153163 < div className = 'flex gap-1' >
154164 < h4 > PR</ h4 >
@@ -159,14 +169,16 @@ const Positions = async () => {
159169 < IconMail />
160170 </ ActionIcon >
161171 </ div >
162- { lang ( `PR är utskottet som ser till att vi syns och hörs även utöver spelningarna! Vårt arbete är
172+ { lang (
173+ `PR är utskottet som ser till att vi syns och hörs även utöver spelningarna! Vårt arbete är
163174 främst att sköta våra sociala medier och fota på spelningar. Inför julkonserten gör vi även
164175 affischerna, programbladen och söker spons. I detta utskott får kreativa idéer komma till liv!` ,
165176
166177 `PR is the committee that makes sure we’re seen and heard even beyond our performances!
167178 Our work mainly involves managing our social media and taking photos at gigs. Before the
168179 Christmas concert, we also create the posters and programs and handle sponsorships. In this
169- committee, creative ideas come to life!` ) }
180+ committee, creative ideas come to life!` ,
181+ ) }
170182
171183 < div className = 'flex gap-1' >
172184 < h4 > Baren</ h4 >
@@ -177,43 +189,45 @@ const Positions = async () => {
177189 < IconMail />
178190 </ ActionIcon >
179191 </ div >
180- { lang ( `Det är baren som förser corpset med grogg! (Ber du snällt kanske du till och med kan få en drink 😉)
192+ { lang (
193+ `Det är baren som förser corpset med grogg! (Ber du snällt kanske du till och med kan få en drink 😉)
181194 Den första torsdagen varje månad bjuder vi in till extra festlig eftersits med extra festlig dryck!
182195 Vi serverar dessutom fördrink inför corpsafton, och rattar Bussbaren hela vägen upp till SOF och STORK.
183196 Eins, zwei, drei, gesoffa!` ,
184197
185198 `The Bar is the committee that keeps the corps supplied with drinks! (If you ask nicely, you might even get a cocktail 😉)
186199 On the first Thursday of every month, we host an extra festive afterparty with extra festive beverages!
187- We also serve pre-drinks before corps evenings and run the Bus Bar all the way to SOF and STORK.` ) }
200+ We also serve pre-drinks before corps evenings and run the Bus Bar all the way to SOF and STORK.` ,
201+ ) }
188202
189203 < div className = 'flex gap-1' >
190204 < h4 > Sexmästeriet</ h4 >
191-
192205 </ div >
193- { lang ( `Sexmästeriet är utskottet som ser till att ingen går hungrig! Vi lagar mat inför både Vårcorps och Höstcorps,
206+ { lang (
207+ `Sexmästeriet är utskottet som ser till att ingen går hungrig! Vi lagar mat inför både Vårcorps och Höstcorps,
194208 och ser till att hela corpset får njuta av god mat.
195209 Tillsammans handlar vi ingredienser, lagar maten och har det riktigt roligt!
196210 Som medlem i Sexmästeriet får du också vara med och bestämma vad som ska lagas (och presentera maten under middagarna).` ,
197211
198212 `The Culinary Committee makes sure no one goes hungry!
199213 We cook for both Vårcorps and Höstcorps, making sure the whole corps gets to enjoy tasty food.
200214 Together, we shop for ingredients, cook, and have a lot of fun along the way!
201- As a member, you also get to help decide what’s on the menu (and show off your creations at the dinners).` ) }
215+ As a member, you also get to help decide what’s on the menu (and show off your creations at the dinners).` ,
216+ ) }
202217
203218 < div className = 'flex gap-1' >
204219 < h4 > ITK</ h4 >
205- < ActionIcon
206- href = { `mailto:itk@bleckhornen.org` }
207- variant = 'subtle'
208- >
220+ < ActionIcon href = { `mailto:itk@bleckhornen.org` } variant = 'subtle' >
209221 < IconMail />
210222 </ ActionIcon >
211223 </ div >
212- { lang ( `ITK har ansvar för drift av alla Bleckhornens hemsidor, samt vidareutveckling av Blindtarmen.
213- Driftansvaret includerar blindtarmen, den publika hemsidan och vår interna wiki.` ,
224+ { lang (
225+ `ITK har ansvar för drift av alla Bleckhornens hemsidor, samt vidareutveckling av Blindtarmen.
226+ Driftansvaret includerar Blindtarmen, den publika hemsidan och vår interna wiki.` ,
214227
215228 `ITK has responsibility for the operation of all Bleckhornens websites, as well as developing Blindtarmen.
216- The operational responsebility includes Blindtarmen, the public website, and our internal wiki` ) }
229+ The operational responsebility includes Blindtarmen, the public website, and our internal wiki` ,
230+ ) }
217231
218232 < div className = 'flex gap-1' >
219233 < h4 > Pryl & prov </ h4 >
@@ -224,7 +238,8 @@ const Positions = async () => {
224238 < IconMail />
225239 </ ActionIcon >
226240 </ div >
227- { lang ( `I pryl & prov har vi ansvar för corpsets merch och provelever!
241+ { lang (
242+ `I pryl & prov har vi ansvar för corpsets merch och provelever!
228243 Vi försöker se till att proveleverna känner sig välkomna i föreningen
229244 och att de alltid har någon att rikta frågor till om föreningen.
230245 Detta gör vi genom att anordna tillställningar som t.ex. provelevsfördrinkar och en provelevsdag!
@@ -236,7 +251,8 @@ const Positions = async () => {
236251 and that they always have someone to turn to with questions about how things work.
237252 We do this by organizing events such as pre-drinks for the new members and a special probationary members’ day!
238253 When it comes to merch, we handle the purchasing and sales of the orchestra's merchandise and sometimes,
239- when we’re feeling inspired, we even design new merch ourselves!` ) }
254+ when we’re feeling inspired, we even design new merch ourselves!` ,
255+ ) }
240256
241257 < div className = 'flex gap-1' >
242258 < h4 > Materialförvaltarna</ h4 >
@@ -247,11 +263,13 @@ const Positions = async () => {
247263 < IconMail />
248264 </ ActionIcon >
249265 </ div >
250- { lang ( `Materialförvaltarna tar hand om och utvecklar Tarmen och ser till Bleckhornens prylar fungerar.
266+ { lang (
267+ `Materialförvaltarna tar hand om och utvecklar Tarmen och ser till Bleckhornens prylar fungerar.
251268 Har du ett roligt projekt du skulle vilja genomföra kan du alltid dryfta din idé med oss för att få tips och stöd.` ,
252269
253270 `The materials managers take care of and develop Tarmen and make sure the Bleckhorns’ equipment works.
254- If you have a fun project you’d like to carry out, you can always discuss your idea with us to get tips and support.` ) }
271+ If you have a fun project you’d like to carry out, you can always discuss your idea with us to get tips and support.` ,
272+ ) }
255273
256274 < div className = 'flex gap-1' >
257275 < h4 > Medaljeriet</ h4 >
@@ -262,44 +280,45 @@ const Positions = async () => {
262280 < IconMail />
263281 </ ActionIcon >
264282 </ div >
265- { lang ( `Vi i Medaljeriet håller koll på vilka medaljer som ska köpas in och delas ut
283+ { lang (
284+ `Vi i Medaljeriet håller koll på vilka medaljer som ska köpas in och delas ut
266285 och ger på så sätt corpsaftnarna och julkoncertsbanketten det där lilla extra!
267286 Vi designar också de temaenliga julkoncertsmedaljerna varje år!
268287 Utskottets finurliga tolkning av temat blir en fin souvenir till alla deltagande corps.` ,
269288
270289 `We in the Medal committee keep track of which medals are to be ordered and given out,
271290 and thus we bring that extra shine to the dinner parties and the Christmas concert banquet!
272291 We also design the Christmas concert medals in accordance with the concert's theme each year!
273- The committee's clever interpretation of the theme ends up as a nice souvenir for all participating corps.` ) }
292+ The committee's clever interpretation of the theme ends up as a nice souvenir for all participating corps.` ,
293+ ) }
274294
275295 < div className = 'flex gap-1' >
276-
277296 < h4 > Import</ h4 >
278-
279297 </ div >
280- { lang ( `Vi i importen ser till att det finns den finaste ölen och cidern till ett överkomligt pris.
298+ { lang (
299+ `Vi i importen ser till att det finns den finaste ölen och cidern.
281300 Därför åker vi på roadtrips över Öresund och med färjan över Fehmarnbältet för att köpa de bästa danska produkterna i Tyskland.` ,
282301
283- `We from the import committee make sure with the finest beer and cider for an affordable prize.
284- Therefore we go on roadtrips across the Öresund and with the ferry over Fehmarn belt to buy the best Danish products in Germany.` ) }
302+ `We from the import committee make sure with the finest beer and cider.
303+ Therefore we go on roadtrips across the Öresund and with the ferry over Fehmarn belt to buy the best Danish products in Germany.` ,
304+ ) }
285305
286306 < div className = 'flex gap-1' >
287307 < h4 > Export</ h4 >
288-
289308 </ div >
290- { lang ( `Vi i Exporten ser till att corpset aldrig går hungriga!
309+ { lang (
310+ `Vi i Exporten ser till att corpset aldrig går hungriga!
291311 Vi fyller på med snacks, dryck och såklart billys!
292312 Oavsett om det är rep, spelning, så ser vi till att corpset håller humöret på topp.` ,
293313
294314 `Exporten makes sure the corps never goes hungry!
295315 We keep the snacks and drinks flowing and of course, plenty of Billy’s!
296- Whether it’s a rehearsal or a gig, we make sure the corps stays happy, energized, and ready to play.` ) }
297-
316+ Whether it’s a rehearsal or a gig, we make sure the corps stays happy, energized, and ready to play.` ,
317+ ) }
298318 </ div >
299319 </ div >
300320 </ div >
301321 ) ;
302322} ;
303323
304- export default Positions ;
305-
324+ export default InfoPage ;
0 commit comments