diff --git a/guide/results-viewer-react/src/YamlWriter.tsx b/guide/results-viewer-react/src/YamlWriter.tsx
index 8f1dd87b..aa990e5c 100644
--- a/guide/results-viewer-react/src/YamlWriter.tsx
+++ b/guide/results-viewer-react/src/YamlWriter.tsx
@@ -96,9 +96,7 @@ export const YamlWriter = () => {
Create a PewPew Test
-
+
>
diff --git a/guide/results-viewer-react/src/components/Modal/story.tsx b/guide/results-viewer-react/src/components/Modal/story.tsx
index e68e2da5..a0f8f7a8 100644
--- a/guide/results-viewer-react/src/components/Modal/story.tsx
+++ b/guide/results-viewer-react/src/components/Modal/story.tsx
@@ -187,6 +187,76 @@ const ModalCreateYamlDemo = () => {
);
};
+// const ModalSwaggerUrlDemo = () => {
+// const modalRef = useRef(null);
+// useEffectModal(modalRef, LogLevel.INFO);
+
+// const [swaggerUrl, setSwaggerUrl] = useState('');
+
+// const submitEvent = () => {
+// log ("Swagger URL submitted: " + swaggerUrl, LogLevel.INFO);
+// return Promise.resolve();
+// };
+
+// return (
+//
+//
+//
+// 0}
+// >
+// setSwaggerUrl(e.target.value)}
+// placeholder="Enter Swagger URL"
+// style={{ width: "100%", padding: "8px", marginTop: "10px" }}
+// />
+//
+//
+// );
+// };
+
+// const ModalServerUrlDemo = () => {
+// const modalRef = useRef(null);
+// useEffectModal(modalRef, LogLevel.INFO);
+
+// const [serverUrl, setServerUrl] = useState('');
+
+// const submitEvent = () => {
+// log ("Server URL submitted: " + serverUrl, LogLevel.INFO);
+// return Promise.resolve();
+// };
+
+// return (
+//
+//
+//
+// 0}
+// >
+// setServerUrl(e.target.value)}
+// placeholder="Enter Server URL"
+// style={{ width: "100%", padding: "8px", marginTop: "10px" }}
+// />
+//
+//
+// );
+// }
+
export default {
title: "Modal"
} as Meta;
@@ -206,3 +276,11 @@ export const _LoggerModal: StoryFn = () => (
export const CreateYamlModal: StoryFn = () => (
);
+
+// export const SwaggerUrlModal: StoryFn = () => (
+//
+// );
+
+// export const ServerUrlModal: StoryFn = () => (
+//
+// );
\ No newline at end of file
diff --git a/guide/results-viewer-react/src/components/YamlWriterUpload/index.tsx b/guide/results-viewer-react/src/components/YamlWriterUpload/index.tsx
index 111a1109..b4f94b60 100644
--- a/guide/results-viewer-react/src/components/YamlWriterUpload/index.tsx
+++ b/guide/results-viewer-react/src/components/YamlWriterUpload/index.tsx
@@ -175,33 +175,6 @@ interface IndexType {
id: string
}
-// Modal wrapper props to make reusing modal component easier
-interface ModalWrapperProps {
- modalRef: React.RefObject;
- title: string;
- submitText: string;
- closeText: string;
- isReady: boolean;
- onSubmit: () => void;
- onClose: () => void;
- children: React.ReactNode;
-}
-
-// A resusable modal wrapper that accepts props and provides a consistent structure for modals
-const ModalWrapper = ({ modalRef, title, submitText, closeText, isReady, onSubmit, onClose, children }: ModalWrapperProps) => (
- Promise.resolve(onSubmit())}
- closeText={closeText}
- onClose={onClose}
- isReady={isReady}
- >
- {children}
-
-);
-
export const YamlWriterUpload = (props: YamlWriterUploadProps) => {
const defaultState: YamlWriterUploadState = {
file: undefined, // To track the Har file
@@ -419,11 +392,9 @@ export const YamlWriterUpload = (props: YamlWriterUploadProps) => {
let hasValidVersion: boolean = false;
let hasValidHost: boolean = false;
if ("openapi" in swaggerData) {
- // const swaggerData = unknownData as SwaggerDoc3;
hasValidServers = Array.isArray(swaggerData.servers) && swaggerData.servers.length > 0;
hasValidVersion = typeof swaggerData.openapi === "string" && versionRegex.test(swaggerData.openapi);
} else if ("swagger" in swaggerData) {
- // const swaggerData = unknownData as SwaggerDoc2;
hasValidHost = typeof swaggerData.host === "string";
hasValidVersion = typeof swaggerData.swagger === "string" && versionRegex.test(swaggerData.swagger);
} else {
@@ -647,7 +618,9 @@ export const YamlWriterUpload = (props: YamlWriterUploadProps) => {
const fullPath = baseUrl.endsWith("/") || url.startsWith("/") ? `${baseUrl}${url}` : `${baseUrl}/${url}`;
const hostUrl = new URL(baseUrl).hostname;
- // Create URL object
+ // Create URL-like object without URL encoding the `{}` on the endpoints,
+ // because using the `new URL()` would encode `{}` into `%7B` and `%7D`.
+ // This ensures the curly braces remain intact for the endpoints.
const parsedUrl = {
href: fullPath,
toString: () => fullPath
@@ -745,7 +718,9 @@ export const YamlWriterUpload = (props: YamlWriterUploadProps) => {
}
}
- // Create URL object
+ // Create URL-like object without URL encoding the `{}` on the endpoints,
+ // because using the `new URL()` would encode `{}` into `%7B` and `%7D`.
+ // This ensures the curly braces remain intact for the endpoints.
const parsedUrl = {
href: fullPath,
toString: () => fullPath
@@ -902,8 +877,8 @@ export const YamlWriterUpload = (props: YamlWriterUploadProps) => {
{/* This is the upload file modal */}
- {
)}
-
+
{/* Modal for Swagger URL input */}
- {
setState({ ...state, swaggerUrl: e.target.value })} />
-
+
{/* This is the modal that opens when a server is missing in a swagger upload */}