From 4065a65fe3294e0ddf54f5756380f7dc1aa032b2 Mon Sep 17 00:00:00 2001 From: Maksymilian Pamula Date: Wed, 22 Apr 2020 06:46:36 +0200 Subject: TD: Rewrite application to TS --- .gitignore | 3 +- .../src/main/components/app/index.scss | 21 +++++++++ .../src/main/components/app/index.tsx | 11 +++++ core/search-component/src/main/components/root.tsx | 43 ++++++++++++++++++ .../src/main/components/search/search.tsx | 45 +++++++++++++++++++ .../src/main/components/search/types.ts | 26 +++++++++++ core/search-component/src/main/scss/index.scss | 1 + core/search-component/tsconfig.json | 34 ++++++++++++++ core/search-component/types/@jetbrains/index.d.ts | 3 ++ core/search-component/types/index.d.ts | 1 + plugins/base/search-component/build.gradle.kts | 4 +- plugins/base/search-component/package.json | 38 ++++------------ plugins/base/search-component/postcss.config.js | 1 - .../search-component/src/main/js/search/app.css | 21 --------- .../search-component/src/main/js/search/app.js | 41 ----------------- .../search-component/src/main/js/search/search.js | 52 ---------------------- plugins/base/search-component/webpack.config.js | 30 +++++++------ 17 files changed, 214 insertions(+), 161 deletions(-) create mode 100644 core/search-component/src/main/components/app/index.scss create mode 100644 core/search-component/src/main/components/app/index.tsx create mode 100644 core/search-component/src/main/components/root.tsx create mode 100644 core/search-component/src/main/components/search/search.tsx create mode 100644 core/search-component/src/main/components/search/types.ts create mode 100644 core/search-component/src/main/scss/index.scss create mode 100644 core/search-component/tsconfig.json create mode 100644 core/search-component/types/@jetbrains/index.d.ts create mode 100644 core/search-component/types/index.d.ts delete mode 100644 plugins/base/search-component/src/main/js/search/app.css delete mode 100644 plugins/base/search-component/src/main/js/search/app.js delete mode 100644 plugins/base/search-component/src/main/js/search/search.js diff --git a/.gitignore b/.gitignore index d949076b..664c9774 100644 --- a/.gitignore +++ b/.gitignore @@ -97,4 +97,5 @@ android.local.properties !integration-tests/gradle-integration-tests/testData/basic/classDir/**/*.class core/out/ -runners/**/out/ \ No newline at end of file +runners/**/out/ +.idea diff --git a/core/search-component/src/main/components/app/index.scss b/core/search-component/src/main/components/app/index.scss new file mode 100644 index 00000000..a7406115 --- /dev/null +++ b/core/search-component/src/main/components/app/index.scss @@ -0,0 +1,21 @@ +@import "src/main/scss/index"; + +html, +.app-root { + height: 100%; +} + +.search-root { + margin: 0; + padding: 0; + + background: var(--ring-content-background-color); + + font-family: var(--ring-font-family); + font-size: var(--ring-font-size); + line-height: var(--ring-line-height); +} + +.search-content { + margin: calc(var(--ring-unit) * 4); +} diff --git a/core/search-component/src/main/components/app/index.tsx b/core/search-component/src/main/components/app/index.tsx new file mode 100644 index 00000000..3427c1ce --- /dev/null +++ b/core/search-component/src/main/components/app/index.tsx @@ -0,0 +1,11 @@ +import React from 'react'; +import {WithFuzzySearchFilter} from '../search/search'; +import './index.scss'; + +const App: React.FC = () => ( +
+ +
+) + +export default App diff --git a/core/search-component/src/main/components/root.tsx b/core/search-component/src/main/components/root.tsx new file mode 100644 index 00000000..70ed9550 --- /dev/null +++ b/core/search-component/src/main/components/root.tsx @@ -0,0 +1,43 @@ +import React from 'react'; +import {render} from 'react-dom'; +import RedBox from 'redbox-react'; + +import App from "./app"; +import './app/index.scss'; + +const appEl = document.getElementById('searchBar'); +const rootEl = document.createElement('div'); + +let renderApp = () => { + render( + , + rootEl + ); +}; + +// @ts-ignore +if (module.hot) { + const renderAppHot = renderApp; + const renderError = (error: Error) => { + render( + , + rootEl + ); + }; + + renderApp = () => { + try { + renderAppHot(); + } catch (error) { + renderError(error); + } + }; + + // @ts-ignore + module.hot.accept('./app', () => { + setTimeout(renderApp); + }); +} + +renderApp(); +appEl!.appendChild(rootEl); diff --git a/core/search-component/src/main/components/search/search.tsx b/core/search-component/src/main/components/search/search.tsx new file mode 100644 index 00000000..f0df0c98 --- /dev/null +++ b/core/search-component/src/main/components/search/search.tsx @@ -0,0 +1,45 @@ +import React, {useCallback, useState} from 'react'; +import {Select} from '@jetbrains/ring-ui'; +import '@jetbrains/ring-ui/components/input-size/input-size.scss'; +import {IWindow, Option, Props, State} from "./types"; + +const WithFuzzySearchFilterComponent: React.FC = ({data}: Props) => { + const [selected, onSelected] = useState