- implement celebi template

This commit is contained in:
Amruth Pillai
2020-07-13 09:46:55 +05:30
parent 7b2094a543
commit 55fd1d4bdc
31 changed files with 3563 additions and 99 deletions

View File

@ -1,11 +1,15 @@
import React, { memo, useContext, useEffect, useState, useRef } from 'react';
import { Tooltip } from '@material-ui/core';
import ModalContext from '../../contexts/ModalContext';
import BaseModal from '../BaseModal';
import Ajv from 'ajv';
import React, { memo, useContext, useEffect, useRef, useState } from 'react';
import { toast } from 'react-toastify';
import Button from '../../components/shared/Button';
import ModalContext from '../../contexts/ModalContext';
import { useDispatch } from '../../contexts/ResumeContext';
import reactiveResumeSchema from '../../data/schema/reactiveResume.json';
import BaseModal from '../BaseModal';
const ImportModal = () => {
const ajv = new Ajv();
const fileInputRef = useRef(null);
const [open, setOpen] = useState(false);
const dispatch = useDispatch();
@ -22,6 +26,11 @@ const ImportModal = () => {
const fr = new FileReader();
fr.addEventListener('load', () => {
const payload = JSON.parse(fr.result);
const valid = ajv.validate(reactiveResumeSchema, payload);
if (!valid) {
ajv.errors.forEach((x) => toast.error(`Invalid Data: ${x.message}`));
return;
}
dispatch({ type: 'on_import', payload });
setOpen(false);
});