Skip to content

Commit cc948e1

Browse files
authored
✨ Sponsor section update, Add Speaker and Workshop form (#114)
* Add workshop form Separate CfP and CallForSponsor application section Modify design margin, sponsor logo size Modify Sponsor section design Modify workshop button * [Review] Modify timetable section order
1 parent acddd9a commit cc948e1

File tree

6 files changed

+74
-125
lines changed

6 files changed

+74
-125
lines changed

Website/Sources/Components/ApplicationFormsComponent.swift

Lines changed: 0 additions & 51 deletions
This file was deleted.
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import Ignite
2+
3+
struct CallForProposalComponent: HTML {
4+
let language: SupportedLanguage
5+
6+
var body: some HTML {
7+
Section {
8+
Link(
9+
String("Speaker Application Form", language: language),
10+
target: "https://forms.gle/FH8EWnPBBF7ziUGDA"
11+
)
12+
.target(.newWindow)
13+
.linkStyle(.button)
14+
.role(.primary)
15+
16+
Link(
17+
String("Workshop Proposal Form", language: language),
18+
target: "https://forms.gle/Qe1z9Mi4yrqBMdYt9"
19+
)
20+
.target(.newWindow)
21+
.linkStyle(.button)
22+
.role(.primary)
23+
}.horizontalAlignment(.center)
24+
}
25+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import Ignite
2+
3+
struct CallForSponsorsComponent: HTML {
4+
let language: SupportedLanguage
5+
6+
var body: some HTML {
7+
Section {
8+
Link(
9+
String("Sponsor Inquiry Form", language: language),
10+
target: "https://forms.gle/K6naVR6vMb6kxshW6"
11+
)
12+
.target(.newWindow)
13+
.linkStyle(.button)
14+
.role(.primary)
15+
}.horizontalAlignment(.center)
16+
}
17+
}

Website/Sources/Components/OutlineComponent.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ struct OutlineComponent: HTML {
3939
.font(.lead)
4040
}
4141
}
42-
ApplicationFormsComponent(language: language)
4342
}
4443
}
4544

Website/Sources/Pages/HomeSections.swift

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ enum HomeSectionType: String, CaseIterable {
88
case outline = "Outline"
99
case speaker = "Speaker"
1010
case tickets = "Tickets"
11+
case cfp = "Call for Proposals"
1112
case meetTheHosts = "Meet the Hosts"
1213
case timetable = "Timetable"
1314
case sponsor = "Sponsor"
@@ -24,8 +25,8 @@ extension HomeSectionType {
2425

2526
func isAvailable(for year: ConferenceYear) -> Bool {
2627
switch year {
27-
case .year2025: true
28-
case .year2026: [.about, .outline, .tickets, .access, .meetTheHosts, .sponsor, .meetTheOrganizers].contains(self)
28+
case .year2025: [.about, .outline, .speaker, .timetable, .meetTheHosts, .sponsor, .meetTheOrganizers, .access].contains(self)
29+
case .year2026: [.about, .outline, .tickets, .cfp, .meetTheHosts, .sponsor, .meetTheOrganizers, .access].contains(self)
2930
}
3031
}
3132

@@ -86,6 +87,9 @@ extension HomeSectionType {
8687
SpeakerModal(speaker: speaker, language: language)
8788
}
8889
}
90+
case .cfp:
91+
SectionHeader(type: self, language: language)
92+
CallForProposalComponent(language: language)
8993
case .meetTheHosts:
9094
SectionHeader(type: self, language: language)
9195

@@ -133,15 +137,13 @@ extension HomeSectionType {
133137
}
134138
case .sponsor:
135139
let sponsors = try! dataClient.fetchSponsors(year)
136-
if sponsors.allPlans.values.contains(where: { !$0.isEmpty }) {
137-
SectionHeader(type: self, language: language)
138-
}
140+
SectionHeader(type: self, language: language)
139141

140142
ForEach(Plan.allCases) { plan in
141143
if let sponsors = sponsors.allPlans[plan], !sponsors.isEmpty {
142144
Text(plan.rawValue.localizedCapitalized.uppercased())
143145
.horizontalAlignment(.center)
144-
.font(.title1)
146+
.font(.title2)
145147
.fontWeight(.bold)
146148
.foregroundStyle(plan.titleColor)
147149
.margin(.all, .px(32))
@@ -150,9 +152,14 @@ extension HomeSectionType {
150152
Section {
151153
SponsorComponent(sponsor: sponsor, size: plan.maxSize, language: language)
152154
}
153-
}.margin(.bottom, .px(160))
155+
}
154156
}
155157
}
158+
159+
if year == ConferenceYear.latest {
160+
CallForSponsorsComponent(language: language)
161+
.margin(.top, .px(32))
162+
}
156163
case .meetTheOrganizers:
157164
SectionHeader(type: self, language: language)
158165

@@ -181,29 +188,27 @@ extension HomeSectionType {
181188
private extension Plan {
182189
var columnCount: Int {
183190
switch self {
184-
case .platinum, .gold:
185-
return 3
186-
case .silver:
187-
return 4
188-
case .bronze, .diversityAndInclusion, .community, .student:
189-
return 5
190-
case .individual:
191-
return 6
191+
case .platinum: 1
192+
case .gold: 2
193+
case .silver: 3
194+
case .bronze: 4
195+
case .diversityAndInclusion, .community, .student: 5
196+
case .individual: 6
192197
}
193198
}
194199

195200
var maxSize: CGSize {
196201
switch self {
197202
case .platinum:
198-
return .init(width: 260, height: 146)
203+
return .init(width: 300, height: 169)
199204
case .gold:
200-
return .init(width: 200, height: 112)
205+
return .init(width: 270, height: 152)
201206
case .silver:
202-
return .init(width: 160, height: 90)
207+
return .init(width: 230, height: 130)
203208
case .bronze, .diversityAndInclusion, .community, .student:
204-
return .init(width: 130, height: 72)
209+
return .init(width: 190, height: 107)
205210
case .individual:
206-
return .init(width: 100, height: 100)
211+
return .init(width: 130, height: 73)
207212
}
208213
}
209214

Website/Sources/Resources/Localizable.xcstrings

Lines changed: 7 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -69,23 +69,6 @@
6969
}
7070
}
7171
},
72-
"Apply or Recommend a Speaker" : {
73-
"extractionState" : "manual",
74-
"localizations" : {
75-
"en" : {
76-
"stringUnit" : {
77-
"state" : "translated",
78-
"value" : "Apply or Recommend a Speaker"
79-
}
80-
},
81-
"ja" : {
82-
"stringUnit" : {
83-
"state" : "translated",
84-
"value" : "スピーカー応募・推薦"
85-
}
86-
}
87-
}
88-
},
8972
"Apr. 9th - 11th, 2025" : {
9073
"extractionState" : "manual",
9174
"localizations" : {
@@ -137,19 +120,13 @@
137120
}
138121
}
139122
},
140-
"Call for Sponsors" : {
123+
"Call for Proposals" : {
141124
"extractionState" : "manual",
142125
"localizations" : {
143-
"en" : {
144-
"stringUnit" : {
145-
"state" : "translated",
146-
"value" : "Call for Sponsors"
147-
}
148-
},
149126
"ja" : {
150127
"stringUnit" : {
151128
"state" : "translated",
152-
"value" : "スポンサー募集"
129+
"value" : "プロポーザル募集"
153130
}
154131
}
155132
}
@@ -1125,23 +1102,6 @@
11251102
}
11261103
}
11271104
},
1128-
"try! Swift Tokyo is looking for speakers who can share new discoveries and learnings with developers around the world! You can apply for your own talk or recommend someone you’d love to hear on stage." : {
1129-
"extractionState" : "manual",
1130-
"localizations" : {
1131-
"en" : {
1132-
"stringUnit" : {
1133-
"state" : "translated",
1134-
"value" : "try! Swift Tokyo is looking for speakers who can share new discoveries and learnings with developers around the world! You can apply for your own talk or recommend someone you’d love to hear on stage."
1135-
}
1136-
},
1137-
"ja" : {
1138-
"stringUnit" : {
1139-
"state" : "translated",
1140-
"value" : "世界中の開発者に新しい発見や学びを届けるスピーカーを募集しています!あなた自身の応募はもちろん、「この人の話を聞いてほしい!」という推薦も大歓迎です。"
1141-
}
1142-
}
1143-
}
1144-
},
11451105
"try! Swift Tokyo operates primarily in Japanese and English, with all venue announcements made in both languages. We also provide AI-powered translation tools, allowing participants to follow sessions in their native language." : {
11461106
"extractionState" : "manual",
11471107
"localizations" : {
@@ -1210,36 +1170,30 @@
12101170
}
12111171
}
12121172
},
1213-
"We are seeking sponsors to help make try! Swift Tokyo a success!<br>If you are interested, please contact us here.<br>We will send you the relevant materials in due course." : {
1173+
"When a provider of personal information requests disclosure of their own personal information, the Corporation will, in principle, disclose the information without delay. When a provider of personal information requests correction of their own personal information, the Corporation will, in principle, make such correction without delay." : {
12141174
"extractionState" : "manual",
12151175
"localizations" : {
12161176
"en" : {
12171177
"stringUnit" : {
12181178
"state" : "translated",
1219-
"value" : "We are seeking sponsors to help make try! Swift Tokyo a success!<br>If you are interested, please contact us here.<br>We will send you the relevant materials in due course."
1179+
"value" : "When a provider of personal information requests disclosure of their own personal information, the Corporation will, in principle, disclose the information without delay. When a provider of personal information requests correction of their own personal information, the Corporation will, in principle, make such correction without delay."
12201180
}
12211181
},
12221182
"ja" : {
12231183
"stringUnit" : {
12241184
"state" : "translated",
1225-
"value" : "try! Swift Tokyo を一緒に盛り上げていただけるスポンサーを募集しています!ご検討いただける方はこちらからご連絡ください。順次、資料をお届けいたします。"
1185+
"value" : "本法人は、個人情報の提供者から自己に関する個人情報の開示の請求があったときは、原則として遅滞なく開示します。また、自己に関する個人情報の訂正等の申し出があったときは、原則として遅滞なく訂正等を行います。"
12261186
}
12271187
}
12281188
}
12291189
},
1230-
"When a provider of personal information requests disclosure of their own personal information, the Corporation will, in principle, disclose the information without delay. When a provider of personal information requests correction of their own personal information, the Corporation will, in principle, make such correction without delay." : {
1190+
"Workshop Proposal Form" : {
12311191
"extractionState" : "manual",
12321192
"localizations" : {
1233-
"en" : {
1234-
"stringUnit" : {
1235-
"state" : "translated",
1236-
"value" : "When a provider of personal information requests disclosure of their own personal information, the Corporation will, in principle, disclose the information without delay. When a provider of personal information requests correction of their own personal information, the Corporation will, in principle, make such correction without delay."
1237-
}
1238-
},
12391193
"ja" : {
12401194
"stringUnit" : {
12411195
"state" : "translated",
1242-
"value" : "本法人は、個人情報の提供者から自己に関する個人情報の開示の請求があったときは、原則として遅滞なく開示します。また、自己に関する個人情報の訂正等の申し出があったときは、原則として遅滞なく訂正等を行います。"
1196+
"value" : "ワークショップ応募フォーム"
12431197
}
12441198
}
12451199
}

0 commit comments

Comments
 (0)