From 1e79cf7a1f1f7b1f9291323ea370c9d138a7d0f4 Mon Sep 17 00:00:00 2001
From: gohil-jay
Date: Sun, 2 Jan 2022 18:47:58 +0530
Subject: [PATCH] Added json validation feature in popup editor
---
frontend/src/components/ShuffleCodeEditor.jsx | 44 ++++++++++++++-----
1 file changed, 34 insertions(+), 10 deletions(-)
diff --git a/frontend/src/components/ShuffleCodeEditor.jsx b/frontend/src/components/ShuffleCodeEditor.jsx
index 63083d90..baf74d08 100644
--- a/frontend/src/components/ShuffleCodeEditor.jsx
+++ b/frontend/src/components/ShuffleCodeEditor.jsx
@@ -28,24 +28,37 @@ const CodeEditor = (props) => {
// const {codelang, setcodelang} = props
const theme = useTheme();
+ const [validation, setvalidation] = React.useState(" ");
+ function IsJsonString(str) {
+ try {
+ var o = JSON.parse(str);
+ if (o && typeof o === "object") {
+ setvalidation("Validation Status: Correct!")
+ }
+ } catch (e) {setvalidation("Validation Status: Incorrect!");}
+ }
+
const [expOutput, setexpOutput] = React.useState(" ");
function expectedOutput(input) {
const found = input.match(/[$]{1}([a-zA-Z0-9_-]+\.?){1}([a-zA-Z0-9#_-]+\.?){0,}/g)
console.log(found)
- for (var i = 0; i < found.length; i++) {
- // console.log(found[i]);
+ try{
+ // When the found array is empty.
+ for (var i = 0; i < found.length; i++) {
+ // console.log(found[i]);
- for (var j = 0; j < actionlist.length; j++) {
- if(found[i].slice(1,).toLowerCase() == actionlist[j].autocomplete.toLowerCase()){
- input = input.replace(found[i], JSON.stringify(actionlist[j].example));
- // console.log(input)
- // console.log(actionlist[j].example)
- }
- // console.log(actionlist[j].autocomplete);
+ for (var j = 0; j < actionlist.length; j++) {
+ if(found[i].slice(1,).toLowerCase() == actionlist[j].autocomplete.toLowerCase()){
+ input = input.replace(found[i], JSON.stringify(actionlist[j].example));
+ // console.log(input)
+ // console.log(actionlist[j].example)
+ }
+ // console.log(actionlist[j].autocomplete);
+ }
}
- }
+ } catch (e) {}
try {
// var x = document.getElementById("expOutput");
@@ -104,6 +117,7 @@ const CodeEditor = (props) => {
onChange={(value) => {
setlocalcodedata(value.getValue())
expectedOutput(value.getValue())
+ IsJsonString(value.getValue())
// console.log(actionlist.slice(-1))
}}
options={{
@@ -144,6 +158,16 @@ const CodeEditor = (props) => {
>
{expOutput}
+
+ {validation}
+