Skip to content

Commit a17c27f

Browse files
Consolidate GOV.UK Frontend into application scripts
We need to ensure that only `initAll()` on example pages suppresses auto focus
1 parent 4f2b0b0 commit a17c27f

File tree

12 files changed

+29
-30
lines changed

12 files changed

+29
-30
lines changed

lib/metalsmith.js

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -175,14 +175,9 @@ module.exports = metalsmith
175175
done()
176176
})
177177

178-
// build the entrypoint for application specific JavaScript
178+
// build the entrypoints for application specific JavaScript
179179
.use(rollup('javascripts/application.mjs'))
180-
181-
// build GOV.UK Frontend JavaScript
182-
.use(rollup('javascripts/govuk-frontend.mjs'))
183-
184-
// build the entrypoint for example specific JavaScript
185-
.use(rollup('javascripts/example.mjs'))
180+
.use(rollup('javascripts/application-example.mjs'))
186181

187182
// add hash to files in production
188183
.use((files, metalsmith, done) => {
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { initAll } from 'govuk-frontend'
2+
3+
import ExamplePage from './components/example-page.mjs'
4+
5+
// Initialise GOV.UK Frontend
6+
initAll({
7+
// Auto focusing the error summary and notification banner is not useful
8+
// when used in examples, and causes the viewport to scroll
9+
errorSummary: { disableAutoFocus: true },
10+
notificationBanner: { disableAutoFocus: true }
11+
})
12+
13+
new ExamplePage(document).init()

src/javascripts/application.mjs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { initAll } from 'govuk-frontend'
2+
13
import Analytics from './components/analytics.mjs'
24
import BackToTop from './components/back-to-top.mjs'
35
import CookieBanner from './components/cookie-banner.mjs'
@@ -11,6 +13,9 @@ import OptionsTable from './components/options-table.mjs'
1113
import Search from './components/search.mjs'
1214
import AppTabs from './components/tabs.mjs'
1315

16+
// Initialise GOV.UK Frontend
17+
initAll()
18+
1419
// Initialise cookie banner
1520
var $cookieBanner = document.querySelector('[data-module="govuk-cookie-banner"]')
1621
new CookieBanner($cookieBanner).init()

src/javascripts/example.mjs renamed to src/javascripts/components/example-page.mjs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
function ExamplePage ($module) {
22
this.$module = $module
33
}
4+
45
ExamplePage.prototype.init = function () {
56
var $module = this.$module
67
if (!$module) {
@@ -9,6 +10,7 @@ ExamplePage.prototype.init = function () {
910
var $form = $module.querySelector('form[action="/form-handler"]')
1011
this.preventFormSubmission($form)
1112
}
13+
1214
ExamplePage.prototype.preventFormSubmission = function ($form) {
1315
// we should only have one form per example
1416
if (!$form) {
@@ -19,4 +21,4 @@ ExamplePage.prototype.preventFormSubmission = function ($form) {
1921
})
2022
}
2123

22-
new ExamplePage(document).init()
24+
export default ExamplePage

src/javascripts/govuk-frontend.mjs

Lines changed: 0 additions & 12 deletions
This file was deleted.

src/styles/page-template/block-areas/index.njk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ stylesheets:
8181
<span class="app-annotate-block__label">block: bodyEnd</span>
8282
{{ super() }}
8383
{# Since we’re not extending the Design System layout we need to add this manually #}
84-
<script type="module" src="{{ getFingerprint('javascripts/govuk-frontend.js') }}"></script>
84+
<script type="module" src="{{ getFingerprint('javascripts/application-example.js') }}"></script>
8585
<script type="module" src="{{ getFingerprint('javascripts/vendor/iframeResizer.contentWindow.min.js') }}"></script>
8686
</div>
8787
{%- endblock %}

src/styles/page-template/custom/index.njk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,6 @@ ignoreInSitemap: true
149149
{% endblock %}
150150

151151
{% block bodyEnd %}
152-
<script type="module" src="{{ getFingerprint('javascripts/govuk-frontend.js') }}"></script>
152+
<script type="module" src="{{ getFingerprint('javascripts/application-example.js') }}"></script>
153153
<script type="module" src="{{ getFingerprint('javascripts/vendor/iframeResizer.contentWindow.min.js') }}"></script>
154154
{% endblock %}

src/styles/page-template/default/index.njk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@ layout: false
1414
{% endblock %}
1515

1616
{% block bodyEnd %}
17-
<script type="module" src="{{ getFingerprint('javascripts/govuk-frontend.js') }}"></script>
17+
<script type="module" src="{{ getFingerprint('javascripts/application-example.js') }}"></script>
1818
<script type="module" src="{{ getFingerprint('javascripts/vendor/iframeResizer.contentWindow.min.js') }}"></script>
1919
{% endblock %}

views/layouts/_generic.njk

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,5 @@
3737
{% block footer %}{% endblock %}
3838

3939
{% block bodyEnd %}
40-
<script type="module" src="{{ getFingerprint('javascripts/govuk-frontend.js') }}"></script>
4140
<script type="module" src="{{ getFingerprint('javascripts/application.js') }}"></script>
4241
{% endblock %}

views/layouts/layout-example-full-page-govuk.njk

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
{{ contents | safe }}
2323
{% endblock %}
2424
{% block bodyEnd %}
25-
<script type="module" src="{{ getFingerprint('javascripts/govuk-frontend.js') }}"></script>
26-
<script type="module" src="{{ getFingerprint('javascripts/example.js') }}"></script>
25+
<script type="module" src="{{ getFingerprint('javascripts/application-example.js') }}"></script>
2726
<script type="module" src="{{ getFingerprint('javascripts/vendor/iframeResizer.contentWindow.min.js') }}"></script>
2827
{% endblock %}

views/layouts/layout-example-full-page.njk

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
{{ contents | safe }}
2525
{% endblock %}
2626
{% block bodyEnd %}
27-
<script type="module" src="{{ getFingerprint('javascripts/govuk-frontend.js') }}"></script>
28-
<script type="module" src="{{ getFingerprint('javascripts/example.js') }}"></script>
27+
<script type="module" src="{{ getFingerprint('javascripts/application-example.js') }}"></script>
2928
<script type="module" src="{{ getFingerprint('javascripts/vendor/iframeResizer.contentWindow.min.js') }}"></script>
3029
{% endblock %}

views/layouts/layout-example.njk

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,7 @@
3535
{% endblock %}
3636

3737
{% block bodyEnd %}
38-
<script type="module" src="{{ getFingerprint('javascripts/govuk-frontend.js') }}"></script>
39-
<script type="module" src="{{ getFingerprint('javascripts/example.js') }}"></script>
38+
<script type="module" src="{{ getFingerprint('javascripts/application-example.js') }}"></script>
4039
<script type="module" src="{{ getFingerprint('javascripts/vendor/iframeResizer.contentWindow.min.js') }}"></script>
4140
{% endblock %}
4241

0 commit comments

Comments
 (0)