From eff12d9443b0ea7da41744c54378728b1288a516 Mon Sep 17 00:00:00 2001
From: AndreiMazol <72735611+AndreiMazol@users.noreply.github.com>
Date: Tue, 24 Nov 2020 12:36:13 +0300
Subject: [PATCH] #113 Ketcher Release Regression (#114)
- add support of table for *.md
- add .env file
- ignore error if server is not set
- fix getState() error while copy/paste structure
- extract combobox styles into separate object
- fix adding new templates
---
example/.env | 1 +
example/src/App.tsx | 2 +-
package.json | 1 +
src/script/api.js | 2 +-
src/script/ui/component/form/combobox.jsx | 9 +-
src/script/ui/component/structrender.jsx | 4 +-
src/script/ui/dialog/mainmenu/about.jsx | 3 +-
src/script/ui/dialog/mainmenu/help.jsx | 5 +-
src/script/ui/state/hotkeys.js | 18 ++--
src/script/ui/state/server/index.js | 9 +-
yarn.lock | 109 +++++++++++++++++++++-
11 files changed, 137 insertions(+), 26 deletions(-)
create mode 100644 example/.env
diff --git a/example/.env b/example/.env
new file mode 100644
index 0000000000..4b4ed8e857
--- /dev/null
+++ b/example/.env
@@ -0,0 +1 @@
+REACT_APP_API_PATH=
\ No newline at end of file
diff --git a/example/src/App.tsx b/example/src/App.tsx
index 19fab8c3b7..8e96108930 100644
--- a/example/src/App.tsx
+++ b/example/src/App.tsx
@@ -6,7 +6,7 @@ import '@ketcher/react/dist/index.css'
const App = () => {
return (
-
+
)
}
diff --git a/package.json b/package.json
index e40f05bae5..2870aacbac 100644
--- a/package.json
+++ b/package.json
@@ -64,6 +64,7 @@
"redux-logger": "^3.0.6",
"redux-thunk": "^2.3.0",
"regenerator-runtime": "^0.13.7",
+ "remark-gfm": "^1.0.0",
"remark-parse": "^9.0.0",
"replace": "^1.2.0",
"reselect": "^4.0.0",
diff --git a/src/script/api.js b/src/script/api.js
index 42124a18c3..1c5991c11b 100644
--- a/src/script/api.js
+++ b/src/script/api.js
@@ -46,7 +46,7 @@ function api(base, defaultOptions) {
imagoVersions: res['imago_versions']
}))
.catch(() => {
- throw Error('Server is not compatible')
+ //TODO: add error handler
})
function request(method, url, data, headers) {
diff --git a/src/script/ui/component/form/combobox.jsx b/src/script/ui/component/form/combobox.jsx
index bb064771d3..eaaec41498 100644
--- a/src/script/ui/component/form/combobox.jsx
+++ b/src/script/ui/component/form/combobox.jsx
@@ -44,11 +44,12 @@ class ComboBox extends Component {
render() {
const { value, type = 'text', schema } = this.props
-
const suggestList = schema.enumNames
.filter(item => item !== value)
.map(item => {item})
-
+ const suggestListStyles = {
+ display: this.state.suggestsHidden ? 'none' : 'block'
+ }
return (
{suggestList.length !== 0 ? (
-
+
{suggestList}
) : (
diff --git a/src/script/ui/component/structrender.jsx b/src/script/ui/component/structrender.jsx
index f90663d1a8..a80f7a954f 100644
--- a/src/script/ui/component/structrender.jsx
+++ b/src/script/ui/component/structrender.jsx
@@ -22,10 +22,10 @@ import Render from '../../render'
function renderStruct(el, struct, options = {}) {
if (el) {
- if (struct.prerender) {
+ if (struct?.prerender) {
// Should it sit here?
el.innerHTML = struct.prerender
- } else {
+ } else if (struct) {
console.info('render!', el.clientWidth, el.clientWidth)
const rnd = new Render(el, {
autoScale: true,
diff --git a/src/script/ui/dialog/mainmenu/about.jsx b/src/script/ui/dialog/mainmenu/about.jsx
index 3176ef4824..f8513816e3 100644
--- a/src/script/ui/dialog/mainmenu/about.jsx
+++ b/src/script/ui/dialog/mainmenu/about.jsx
@@ -31,7 +31,8 @@ function About(props) {
+ target="_blank"
+ rel="noopener noreferrer">
Ketcher
diff --git a/src/script/ui/dialog/mainmenu/help.jsx b/src/script/ui/dialog/mainmenu/help.jsx
index f2312718b4..d8565b454e 100644
--- a/src/script/ui/dialog/mainmenu/help.jsx
+++ b/src/script/ui/dialog/mainmenu/help.jsx
@@ -16,6 +16,7 @@
import React, { useEffect, useState, useCallback } from 'react'
import Markdown from 'react-markdown'
+import gfm from 'remark-gfm'
import { useSettingsContext } from './../../../../hooks'
import Dialog from '../../component/dialog'
function Help(props) {
@@ -39,7 +40,9 @@ function Help(props) {
content && (
)
diff --git a/src/script/ui/state/hotkeys.js b/src/script/ui/state/hotkeys.js
index 963970edd0..7aa2b44509 100644
--- a/src/script/ui/state/hotkeys.js
+++ b/src/script/ui/state/hotkeys.js
@@ -27,17 +27,17 @@ import { openDialog } from './modal'
import { onAction, load } from './shared'
export function initKeydownListener(element) {
- return function (dispatch, getState) {
+ return function (dispatch) {
const hotKeys = initHotKeys()
element.addEventListener('keydown', event =>
- keyHandle(dispatch, getState, hotKeys, event)
+ keyHandle(dispatch, global.currentState, hotKeys, event)
)
}
}
/* HotKeys */
-function keyHandle(dispatch, getState, hotKeys, event) {
- const state = getState()
+function keyHandle(dispatch, state, hotKeys, event) {
+ //const state = global.currentState
if (state.modal) return
const editor = state.editor
@@ -115,7 +115,7 @@ function checkGroupOnTool(group, actionTool) {
const rxnTextPlain = /\$RXN\n+\s+0\s+0\s+0\n*/
/* ClipArea */
-export function initClipboard(dispatch, getState) {
+export function initClipboard(dispatch) {
const formats = Object.keys(structFormat.map).map(
fmt => structFormat.map[fmt].mime
)
@@ -128,17 +128,17 @@ export function initClipboard(dispatch, getState) {
return {
formats,
focused() {
- return !getState().modal
+ return !global.currentState.modal
},
onCut() {
- const editor = getState().editor
+ const editor = global.currentState.editor
const data = clipData(editor)
if (data) debAction({ tool: 'eraser', opts: 1 })
else editor.selection(null)
return data
},
onCopy() {
- const editor = getState().editor
+ const editor = global.currentState.editor
const data = clipData(editor)
editor.selection(null)
return data
@@ -150,7 +150,7 @@ export function initClipboard(dispatch, getState) {
data['chemical/x-mdl-rxnfile'] ||
data['text/plain']
- const struct = getState().editor.render.ctab.molecule
+ const struct = global.currentState.editor.render.ctab.molecule
if (
structStr &&
diff --git a/src/script/ui/state/server/index.js b/src/script/ui/state/server/index.js
index fe0a56fd27..784bdad72b 100644
--- a/src/script/ui/state/server/index.js
+++ b/src/script/ui/state/server/index.js
@@ -31,9 +31,9 @@ export function checkServer() {
res =>
dispatch(
appUpdate({
- indigoVersion: res.indigoVersion,
- imagoVersions: res.imagoVersions,
- server: true
+ indigoVersion: res?.indigoVersion,
+ imagoVersions: res?.imagoVersions,
+ server: res?.indigoVersion && res?.imagoVersions
})
),
err => console.info(err)
@@ -98,8 +98,7 @@ export function check(optsTypes) {
.catch(e => {
//TODO: add error handler call
//legacy message: Failed check
- throw e
- }) // eslint-disable-line no-undef
+ })
// TODO: notification
}
}
diff --git a/yarn.lock b/yarn.lock
index 2872aaf176..10296d95fa 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -8073,7 +8073,7 @@ loglevel@^1.6.8:
resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.0.tgz#728166855a740d59d38db01cf46f042caa041bb0"
integrity sha512-i2sY04nal5jDcagM3FMfG++T69GEEM8CYuOfeOIvmXzOIcwE9a/CJPR0MFM97pYMj/u10lzz7/zd7+qwhrBTqQ==
-longest-streak@^2.0.1:
+longest-streak@^2.0.0, longest-streak@^2.0.1:
version "2.0.4"
resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4"
integrity sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==
@@ -8218,6 +8218,55 @@ mdast-util-from-markdown@^0.8.0:
micromark "~2.10.0"
parse-entities "^2.0.0"
+mdast-util-gfm-autolink-literal@^0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-0.1.1.tgz#94675074d725ed7254b3172fa7e7c3252960de39"
+ integrity sha512-gJ2xSpqKCetSr22GEWpZH3f5ffb4pPn/72m4piY0v7T/S+O7n7rw+sfoPLhb2b4O7WdnERoYdALRcmD68FMtlw==
+
+mdast-util-gfm-strikethrough@^0.2.0:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-0.2.2.tgz#6e9ddd33ce41b06a60463e817f6ef4cf7bfa0655"
+ integrity sha512-T37ZbaokJcRbHROXmoVAieWnesPD5N21tv2ifYzaGRLbkh1gknItUGhZzHefUn5Zc/eaO/iTDSAFOBrn/E8kWw==
+ dependencies:
+ mdast-util-to-markdown "^0.5.0"
+
+mdast-util-gfm-table@^0.1.0:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/mdast-util-gfm-table/-/mdast-util-gfm-table-0.1.4.tgz#5b3d71d16294c6fae1c2c424d3a081ffc7407b83"
+ integrity sha512-T4xFSON9kUb/IpYA5N+KGWcsdGczAvILvKiXQwUGind6V9fvjPCR9yhZnIeaLdBWXaz3m/Gq77ZtuLMjtFR4IQ==
+ dependencies:
+ markdown-table "^2.0.0"
+ mdast-util-to-markdown "^0.5.0"
+
+mdast-util-gfm-task-list-item@^0.1.0:
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-0.1.5.tgz#3179e77f1c881370818302e7b93537d7c281401d"
+ integrity sha512-6O0bt34r+e7kYjeSwedhjDPYraspKIYKbhvhQEEioL7gSmXDxhN7WQW2KoxhVMpNzjNc03yC7K5KH6NHlz2jOA==
+ dependencies:
+ mdast-util-to-markdown "^0.5.0"
+
+mdast-util-gfm@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/mdast-util-gfm/-/mdast-util-gfm-0.1.0.tgz#bac0efe703670d1b40474e6be13dbdd887273a04"
+ integrity sha512-HLfygQL6HdhJhFbLta4Ki9hClrzyAxRjyRvpm5caN65QZL+NyHPmqFlnF9vm1Rn58JT2+AbLwNcEDY4MEvkk8Q==
+ dependencies:
+ mdast-util-gfm-autolink-literal "^0.1.0"
+ mdast-util-gfm-strikethrough "^0.2.0"
+ mdast-util-gfm-table "^0.1.0"
+ mdast-util-gfm-task-list-item "^0.1.0"
+
+mdast-util-to-markdown@^0.5.0:
+ version "0.5.3"
+ resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-0.5.3.tgz#e05c54a3ccd239bab63c48a1e5b5747f0dcd5aca"
+ integrity sha512-sr8q7fQJ1xoCqZSXW6dO/MYu2Md+a4Hfk9uO+XHCfiBhVM0EgWtfAV7BuN+ff6otUeu2xDyt1o7vhZGwOG3+BA==
+ dependencies:
+ "@types/unist" "^2.0.0"
+ longest-streak "^2.0.0"
+ mdast-util-to-string "^1.0.0"
+ parse-entities "^2.0.0"
+ repeat-string "^1.0.0"
+ zwitch "^1.0.0"
+
mdast-util-to-string@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz#27055500103f51637bd07d01da01eb1967a43527"
@@ -8326,6 +8375,51 @@ microevent.ts@~0.1.1:
resolved "https://registry.yarnpkg.com/microevent.ts/-/microevent.ts-0.1.1.tgz#70b09b83f43df5172d0205a63025bce0f7357fa0"
integrity sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==
+micromark-extension-gfm-autolink-literal@~0.5.0:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-0.5.1.tgz#5326fc86f3ae0fbba57bb0bfc2f158c9456528ce"
+ integrity sha512-j30923tDp0faCNDjwqe4cMi+slegbGfc3VEAExEU8d54Q/F6pR6YxCVH+6xV0ItRoj3lCn1XkUWcy6FC3S9BOw==
+ dependencies:
+ micromark "~2.10.0"
+
+micromark-extension-gfm-strikethrough@~0.6.0:
+ version "0.6.2"
+ resolved "https://registry.yarnpkg.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-0.6.2.tgz#754788bdd13046e7f69edaa0d3f3d555d23128d6"
+ integrity sha512-aehEEqtTn3JekJNwZZxa7ZJVfzmuaWp4ew6x6sl3VAKIwdDZdqYeYSQIrNKwNgH7hX0g56fAwnSDLusJggjlCQ==
+ dependencies:
+ micromark "~2.10.0"
+
+micromark-extension-gfm-table@~0.4.0:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-0.4.1.tgz#79cc37da82d6ae0cc3901c1c6264b97a72372fbd"
+ integrity sha512-xVpqOnfFaa2OtC/Y7rlt4tdVFlUHdoLH3RXAZgb/KP3DDyKsAOx6BRS3UxiiyvmD/p2l6VUpD4bMIniuP4o4JA==
+ dependencies:
+ micromark "~2.10.0"
+
+micromark-extension-gfm-tagfilter@~0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-0.3.0.tgz#d9f26a65adee984c9ccdd7e182220493562841ad"
+ integrity sha512-9GU0xBatryXifL//FJH+tAZ6i240xQuFrSL7mYi8f4oZSbc+NvXjkrHemeYP0+L4ZUT+Ptz3b95zhUZnMtoi/Q==
+
+micromark-extension-gfm-task-list-item@~0.3.0:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-0.3.2.tgz#74dbcf473276e762d2062baa0764b53c19205797"
+ integrity sha512-cm8lYS10YAqeXE9B27TK3u1Ihumo3H9p/3XumT+jp8vSuSbSpFIJe0bDi2kq4YAAIxtcTzUOxhEH4ko2/NYDkQ==
+ dependencies:
+ micromark "~2.10.0"
+
+micromark-extension-gfm@^0.3.0:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/micromark-extension-gfm/-/micromark-extension-gfm-0.3.1.tgz#30b8706bd2a3f7fd31aa37873d743946a9e856c3"
+ integrity sha512-lJlhcOqzoJdjQg+LMumVHdUQ61LjtqGdmZtrAdfvatRUnJTqZlRwXXHdLQgNDYlFw4mycZ4NSTKlya5QcQXl1A==
+ dependencies:
+ micromark "~2.10.0"
+ micromark-extension-gfm-autolink-literal "~0.5.0"
+ micromark-extension-gfm-strikethrough "~0.6.0"
+ micromark-extension-gfm-table "~0.4.0"
+ micromark-extension-gfm-tagfilter "~0.3.0"
+ micromark-extension-gfm-task-list-item "~0.3.0"
+
micromark@~2.10.0:
version "2.10.1"
resolved "https://registry.yarnpkg.com/micromark/-/micromark-2.10.1.tgz#cd73f54e0656f10e633073db26b663a221a442a7"
@@ -10948,6 +11042,14 @@ relateurl@^0.2.7:
resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9"
integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=
+remark-gfm@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/remark-gfm/-/remark-gfm-1.0.0.tgz#9213643001be3f277da6256464d56fd28c3b3c0d"
+ integrity sha512-KfexHJCiqvrdBZVbQ6RopMZGwaXz6wFJEfByIuEwGf0arvITHjiKKZ1dpXujjH9KZdm1//XJQwgfnJ3lmXaDPA==
+ dependencies:
+ mdast-util-gfm "^0.1.0"
+ micromark-extension-gfm "^0.3.0"
+
remark-parse@^8.0.0:
version "8.0.3"
resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-8.0.3.tgz#9c62aa3b35b79a486454c690472906075f40c7e1"
@@ -13717,3 +13819,8 @@ yargs@^16.0.3:
string-width "^4.2.0"
y18n "^5.0.5"
yargs-parser "^20.2.2"
+
+zwitch@^1.0.0:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920"
+ integrity sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==