Skip to content

Commit 8e4eedc

Browse files
author
Sebastian Thulin
committed
fix: implements some interfaces.
1 parent 261ab5a commit 8e4eedc

File tree

5 files changed

+29
-20
lines changed

5 files changed

+29
-20
lines changed

source/js/asyncNonce/asyncNonce.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,10 @@ class AsyncNonce implements AsyncNonceInterface {
3939
const json = await response.json();
4040
return json?.nonce ?? null;
4141
} catch (error: any) {
42-
console.error("Nonce fetching failed:", error?.message || error);
42+
submitStatusHandler.setStatus(
43+
SubmitStatus.Error,
44+
"Failed to fetch security validation key, please try again."
45+
);
4346
return null;
4447
}
4548
}
Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import SubmitStatus from './enum';
2+
import SubmitStatusHandlerInterface from './handlerInterface';
23

3-
class SubmitStatusHandler {
4+
class SubmitStatusHandler implements SubmitStatusHandlerInterface {
45
/**
56
* Constructor for SubmitStatusHandler.
67
* @param formContainer The form container element.
@@ -15,23 +16,11 @@ class SubmitStatusHandler {
1516
* @param message The status message to display.
1617
*/
1718
public setStatus(status: SubmitStatus, message: string): void {
18-
const statusElement = this.formContainer.querySelector('[data-js-frontend-form-status]');
19-
20-
if (!statusElement) {
21-
console.error("Status element not found.");
22-
return;
23-
}
24-
25-
const statusData = { status, message };
26-
// Store data directly on the element
27-
(statusElement as any)._submitStatus = statusData;
28-
29-
30-
console.log("SubmitStatusHandler: setStatus called with status:", status, "and message:", message);
31-
32-
// Dispatch a custom event
33-
const event = new CustomEvent('submitStatusChanged', { detail: statusData });
34-
statusElement.dispatchEvent(event);
19+
this.formContainer.dispatchEvent(
20+
new CustomEvent(
21+
'submitStatusChanged', {detail: {status, message}}
22+
)
23+
);
3524
}
3625
}
3726
export default SubmitStatusHandler;
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import SubmitStatus from './enum';
2+
3+
interface SubmitStatusHandlerInterface {
4+
/**
5+
* Set the status and message.
6+
* @param status A value from SubmitStatus enum.
7+
* @param message The status message to display.
8+
*/
9+
setStatus(status: SubmitStatus, message: string): void;
10+
}
11+
12+
export default SubmitStatusHandlerInterface;

source/js/steps/submit/status/render.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import SubmitStatus from './enum';
2+
import SubmitStatusRendererInterface from './renderInterface';
23

3-
class SubmitStatusRenderer {
4+
class SubmitStatusRenderer implements SubmitStatusRendererInterface {
45
private container: HTMLElement;
56

67
constructor(container: HTMLElement) {
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
interface SubmitStatusRendererInterface {
2+
setup(): void;
3+
}
4+
export default SubmitStatusRendererInterface;

0 commit comments

Comments
 (0)