@@ -2,6 +2,9 @@ import React from 'react'
22import ReactDOM from 'react-dom/server'
33import { Shell } from '@financial-times/dotcom-ui-shell'
44import { Layout } from '@financial-times/dotcom-ui-layout'
5+ import { subnavData } from '../../constants'
6+ import SubnavDemo from '../views/SubnavDemo.jsx'
7+ import HelloWorld from '../views/HelloWorld.jsx'
58
69const flags = {
710 ads : true ,
@@ -10,155 +13,6 @@ const flags = {
1013 showRestartSubscriptionButton : false
1114}
1215
13- const subnavData = [
14- { label : 'Monetary Policy Radar' , url : '/central-banks/monetary-policy-radar' , selected : false } ,
15- {
16- label : 'Federal Reserve' ,
17- url : null ,
18- selected : false ,
19- subnavDropdownOptions : [
20- { label : 'Coverage' , url : '/banks/federal-reserve/coverage' , trackable : 'FED_DROPDOWN_COVERAGE' } ,
21- {
22- label : 'Policy Rate Scenarios' ,
23- url : '/banks/federal-reserve/policy-rate-scenarios' ,
24- trackable : 'FED_DROPDOWN_POLICY_RATE_SCENARIOS'
25- } ,
26- {
27- label : 'Doves and Hawks' ,
28- url : '/banks/federal-reserve/doves-and-hawks' ,
29- trackable : 'FED_DROPDOWN_DOVES_AND_HAWKS'
30- } ,
31- {
32- label : 'Central bankers views' ,
33- url : '/banks/federal-reserve/views' ,
34- trackable : 'FED_DROPDOWN_CENTRAL_BANKERS_VIEWS'
35- } ,
36- {
37- label : 'Profile of central bankers' ,
38- url : '/banks/federal-reserve/profiles' ,
39- trackable : 'FED_DROPDOWN_PROFILES'
40- } ,
41- {
42- label : "Analysts' views" ,
43- url : '/banks/federal-reserve/analysts-views/all-estimates' ,
44- trackable : 'FED_DROPDOWN_ANALYSTS_VIEWS'
45- } ,
46- { label : 'Data' , url : '/banks/federal-reserve/data' , trackable : 'FED_DROPDOWN_DATA' } ,
47- { label : 'Calendar' , url : '/banks/federal-reserve/calendar' , trackable : 'FED_DROPDOWN_CALENDAR' }
48- ] ,
49- isSubnavDropdownEnabled : true
50- } ,
51- {
52- label : 'European Central Bank' ,
53- url : null ,
54- selected : false ,
55- subnavDropdownOptions : [
56- { label : 'Coverage' , url : '/banks/european-central-bank/coverage' , trackable : 'ECB_DROPDOWN_COVERAGE' } ,
57- {
58- label : 'Policy Rate Scenarios' ,
59- url : '/banks/european-central-bank/policy-rate-scenarios' ,
60- trackable : 'ECB_DROPDOWN_POLICY_RATE_SCENARIOS'
61- } ,
62- {
63- label : 'Doves and Hawks' ,
64- url : '/banks/european-central-bank/doves-and-hawks' ,
65- trackable : 'ECB_DROPDOWN_DOVES_AND_HAWKS'
66- } ,
67- {
68- label : 'Central bankers views' ,
69- url : '/banks/european-central-bank/views' ,
70- trackable : 'ECB_DROPDOWN_CENTRAL_BANKERS_VIEWS'
71- } ,
72- {
73- label : 'Profile of central bankers' ,
74- url : '/banks/european-central-bank/profiles' ,
75- trackable : 'ECB_DROPDOWN_PROFILES'
76- } ,
77- {
78- label : "Analysts' views" ,
79- url : '/banks/european-central-bank/analysts-views/all-estimates' ,
80- trackable : 'ECB_DROPDOWN_ANALYSTS_VIEWS'
81- } ,
82- { label : 'Data' , url : '/banks/european-central-bank/data' , trackable : 'ECB_DROPDOWN_DATA' } ,
83- { label : 'Calendar' , url : '/banks/european-central-bank/calendar' , trackable : 'ECB_DROPDOWN_CALENDAR' }
84- ] ,
85- isSubnavDropdownEnabled : true
86- } ,
87- {
88- label : 'Bank of England' ,
89- url : null ,
90- selected : false ,
91- subnavDropdownOptions : [
92- { label : 'Coverage' , url : '/banks/bank-of-england/coverage' , trackable : 'BOE_DROPDOWN_COVERAGE' } ,
93- {
94- label : 'Policy Rate Scenarios' ,
95- url : '/banks/bank-of-england/policy-rate-scenarios' ,
96- trackable : 'BOE_DROPDOWN_POLICY_RATE_SCENARIOS'
97- } ,
98- {
99- label : 'Doves and Hawks' ,
100- url : '/banks/bank-of-england/doves-and-hawks' ,
101- trackable : 'BOE_DROPDOWN_DOVES_AND_HAWKS'
102- } ,
103- {
104- label : 'Central bankers views' ,
105- url : '/banks/bank-of-england/views' ,
106- trackable : 'BOE_DROPDOWN_CENTRAL_BANKERS_VIEWS'
107- } ,
108- {
109- label : 'Profile of central bankers' ,
110- url : '/banks/bank-of-england/profiles' ,
111- trackable : 'BOE_DROPDOWN_PROFILES'
112- } ,
113- {
114- label : "Analysts' views" ,
115- url : '/banks/bank-of-england/analysts-views/all-estimates' ,
116- trackable : 'BOE_DROPDOWN_ANALYSTS_VIEWS'
117- } ,
118- { label : 'Data' , url : '/banks/bank-of-england/data' , trackable : 'BOE_DROPDOWN_DATA' } ,
119- { label : 'Calendar' , url : '/banks/bank-of-england/calendar' , trackable : 'BOE_DROPDOWN_CALENDAR' }
120- ] ,
121- isSubnavDropdownEnabled : true
122- } ,
123- {
124- label : 'Bank of Japan' ,
125- url : null ,
126- selected : false ,
127- subnavDropdownOptions : [
128- { label : 'Coverage' , url : '/banks/bank-of-japan/coverage' , trackable : 'BOJ_DROPDOWN_COVERAGE' } ,
129- {
130- label : 'Policy Rate Scenarios' ,
131- url : '/banks/bank-of-japan/policy-rate-scenarios' ,
132- trackable : 'BOJ_DROPDOWN_POLICY_RATE_SCENARIOS'
133- } ,
134- {
135- label : 'Doves and Hawks' ,
136- url : '/banks/bank-of-japan/doves-and-hawks' ,
137- trackable : 'BOJ_DROPDOWN_DOVES_AND_HAWKS'
138- } ,
139- {
140- label : 'Central bankers views' ,
141- url : '/banks/bank-of-japan/views' ,
142- trackable : 'BOJ_DROPDOWN_CENTRAL_BANKERS_VIEWS'
143- } ,
144- {
145- label : 'Profile of central bankers' ,
146- url : '/banks/bank-of-japan/profiles' ,
147- trackable : 'BOJ_DROPDOWN_PROFILES'
148- } ,
149- {
150- label : "Analysts' views" ,
151- url : '/banks/bank-of-japan/analysts-views/all-estimates' ,
152- trackable : 'BOJ_DROPDOWN_ANALYSTS_VIEWS'
153- } ,
154- { label : 'Data' , url : '/banks/bank-of-japan/data' , trackable : 'BOJ_DROPDOWN_DATA' } ,
155- { label : 'Calendar' , url : '/banks/bank-of-japan/calendar' , trackable : 'BOJ_DROPDOWN_CALENDAR' }
156- ] ,
157- isSubnavDropdownEnabled : true
158- } ,
159- { label : 'Global Coverage' , url : '/banks/global/coverage' , selected : false }
160- ]
161-
16216export function homeController ( request , response , next ) {
16317 const appContext = {
16418 appName : 'ft-ui' ,
@@ -170,36 +24,11 @@ export function homeController(request, response, next) {
17024 const pageData = enableSubNavigation
17125 ? {
17226 title : 'Subnavigation demo' ,
173- contents : `
174- <div class="content">
175- <div align="center">
176- <p class="o3-type-title-lg">Subnavigation </p>
177- </div>
178- <div>
179- <p>
180- This demo shows how the bank navigation items in the sub-navigation can support dropdown
181- options initially designed for MPR.
182- </p>
183- <p>The navigation data structure includes:</p>
184- <ul>
185- <li>
186- <code>subnavDropdownOptions</code> - array of dropdown options with label, url, and
187- trackable properties
188- </li>
189- <li>Full URLs for each dropdown option, providing complete flexibility for routing</li>
190- <li><code>trackable</code> identifier for each dropdown option</li>
191- <li>
192- <code>isSubnavDropdownEnabled</code> - boolean which enables or disables the dropdowns for a
193- menu item.
194- </li>
195- </ul>
196- </div>
197- </div>
198- `
27+ contents : ReactDOM . renderToStaticMarkup ( < SubnavDemo /> )
19928 }
20029 : {
20130 title : 'Hello World!' ,
202- contents : '<div align="center"><p>Hello, welcome to Page Kit.</p></div>'
31+ contents : ReactDOM . renderToStaticMarkup ( < HelloWorld /> )
20332 }
20433
20534 const { assetLoader } = response . locals
0 commit comments