Skip to content

Commit

Permalink
Merge pull request #51 from DEFRA/reset_state
Browse files Browse the repository at this point in the history
Reset state machine on final page
  • Loading branch information
alanplatt authored Nov 7, 2024
2 parents e181302 + 2de5875 commit 25ba3ff
Show file tree
Hide file tree
Showing 6 changed files with 47 additions and 7 deletions.
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "ffc-grants-eligibility-checker",
"description": "FFC Grant Eligibility Checker",
"version": "1.0.23",
"version": "1.0.24",
"license": "OGL-UK-3.0",
"contributors": [
"Andrew Folga <[email protected]>",
Expand Down
40 changes: 38 additions & 2 deletions src/config/machines/example-grant-machine.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,41 @@ export const actionImplementations = {
currentPageId: (_context, event) => {
return event.type === 'NEXT' ? event.nextPageId : event.previousPageId;
}
}),
/**
* Logs a message when a page is loaded
* @param {object} context machine context
*/
loadPageAction: (context) => {
console.log(`${context.currentPageId} page loaded. State should reset in 1 second.`);
},

resetState: assign({
/**
* Resets the current page id.
* Sets the currentPageId to 'start'
* @param {object} _context - The machine context.
* @param {object} _event - The triggered event.
* @returns {string} The start page id.
*/
currentPageId: (_context, _event) => {
return 'start';
},

/**
* Resets the completed page ids array
* @param {object} _context machine context
* @param {object} _event triggered event
* @returns {string} empty completed page ids array
*/
completedPageIds: (_context, _event) => {
return [];
}
})
};

export const exampleGrantMachine = createMachine({
/** xstate-layout N4IgpgJg5mDOIC5RgB4EMC2AHANmA4gE5oB2ALgLJoDGAFgJYlgB0sZahZAxAHICiADQAqAbQAMAXUSgsAe1j0y9WSWkgUiAIwBmAKzMAbNoBMADk0GAnJbGmALA+MAaEAE8tAdgPNdH02MsvQJtdbVMAX3CXVExcAmJyKjpGFmpZDAwVAFo0gFdyQlcuACEAQQBhAGlxKSQQOQUlFTUNBB1vW1NQ2zFdMQ9jOxd3BHNmE2MbHT1NTTNI6PRsPCJSShoGJmY0jOy8gqL+YRq1BsVlVTrW3WN9A3sbLv87D2thz0tmfvNbiw8AwYRKLgJZxVaJDYpVhgNIkCBZACOuTgTRIJQq1Ukp3k52aV0QN28mjsYgMuhsxjEk3671G2mYpmM1Omulm82BMWW8TWSU2LFgMJU8KRKIuvEEoixdTOqJaiEezE0ulMpm0YW0SuJulpmg89LsljJZlMersTPukWBJFkEDgak5YIS62STGxjQucoQWQMtO9XzEAcDQcDHgWINiKydvKhbA4ZDduMuoFaZtplLshlMBiML0eoTNYYdkZ5kK2O0yJBysnyZEKCdl+IQ2hJirCVOJ2hCHg82rciEpHkVWZzr1s+eMhdBxYhLv5grhiORbA90pxDeTiD1YkVUw1zeJ9h9fYQlM+92zzdHXWbE45U+5M75zAAZow0Dh6yuN202YYDCSwmMV4Bm7NNbGYBw9wcOx7H+OxLXCIA */
/** @xstate-layout N4IgpgJg5mDOIC5RgB4EMC2AHANmA4gE5oB2ALgLJoDGAFgJYlgB0sZahZAxAHICiADQAqAbQAMAXUSgsAe1j0y9WSWkgUiABwB2AGzMAnLrGbNYgKwBGTec0AmADQgAnogDMBgCzM7lu3bdfO3NPCwMAX3CnVExcAmJyKjpGFmpZAFdyQmcuACEAQQBhAGlxKSQQOQUlFTUNBB1tZk9LMTEDAztdS08WgydXBCt9VstzczFtc38DKcjo9Gw8IlJKGgYmZjTMsmzeQVFJNSrFZVUK+p19IxMzKxt7Aa1LZkC7A0s3TwMbHrdLebgRZxFaJdYpVhgNIkCAAWgAjuk4DUSHkiqUjhUTii6ogAt4fpY9IE3MYiV4nghgi9Jp5NLpxm56dpTICYkt4qskhsWLAoSo4YjkWd9sIysd5Kdahc8V9DJoiboSWTtBSXIhQnYfAYme8xG43NpDQZzGzgcsEmtkpsAGaMNA4LgoNhoMgsNA2t2EAAUrTaAEouOyQZbuRC7SQHeKsZKcTKELpdFrxj9hobpuY3JTPB5mPYlaq7HSvETIlEQCRZBA4GpgxaueCmBLqmdcQhYbpKR3mG1e33+9ozbF62Drbz2Jxm1LzqB6iy3K8xhYDUnjNptNmmc0dbpZknfFchxzQVaeVsMllBjJY63460Ps1zCaGaEjLoFZS7KrF0qOiEQu0R4hg2Y6QtCgpImwt7Xi20qzhqjjqggfjmHmJpEtovReEmYieEBI6nuG9o4FOcbwQgOYGM0Zg5nY9KaP8VjZmMPYsqmtyeNoYhKmW4RAA */
id: 'exampleGrantMachine',
predictableActionArguments: true,
initial: 'start',
Expand Down Expand Up @@ -88,7 +118,13 @@ export const exampleGrantMachine = createMachine({
},

final: {
type: 'final',
entry: 'loadPageAction',
after: {
1000: {
target: 'start', // Automatically transitions to 'start' after 1 second
actions: ['resetState']
}
},
meta: {
currentPageId: 'final'
}
Expand Down
6 changes: 6 additions & 0 deletions src/views/pages/example-grant/final.njk
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,10 @@
<div class="govuk-grid-column-two-thirds">
<h1 class="govuk-heading-xl">Final page</h1>
</div>

<script>
setTimeout(function() {
window.location.href = '/eligibility-checker/{{ meta.grantTypeId }}/start';
}, 1000);
</script>
{% endblock %}
1 change: 0 additions & 1 deletion src/views/pages/example-grant/start.njk
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,6 @@
<script>
document.addEventListener('DOMContentLoaded', function() {
document.getElementById("continueBtn").addEventListener("click", (event) => {
console.log(`HERE event=${JSON.stringify(event, null, 2)}`);
fetch("/eligibility-checker/{{ meta.grantTypeId }}/transition", {
method: "POST",
headers: { "Content-Type": "application/json" },
Expand Down
1 change: 0 additions & 1 deletion test/integration/narrow/__snapshots__/start.spec.js.snap
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,6 @@ exports[`Start Page snapshot should match snapshot 1`] = `
<script>
document.addEventListener('DOMContentLoaded', function() {
document.getElementById("continueBtn").addEventListener("click", (event) => {
console.log(\`HERE event=\${JSON.stringify(event, null, 2)}\`);
fetch("/eligibility-checker/example-grant/transition", {
method: "POST",
headers: { "Content-Type": "application/json" },
Expand Down

0 comments on commit 25ba3ff

Please sign in to comment.