diff --git a/.babelrc b/.babelrc
index c4fcb6d..3e4eb64 100644
--- a/.babelrc
+++ b/.babelrc
@@ -1,7 +1,13 @@
{
"presets": [
["@babel/preset-env", {"modules": false}],
- ["@babel/preset-typescript", {"modules": false}]
+ ["@babel/preset-typescript", {"modules": false}],
+ [
+ "@babel/preset-react",
+ {
+ "modules": false
+ }
+ ]
],
"plugins": [
[
diff --git a/package.json b/package.json
index 0a9e59d..21a3f60 100644
--- a/package.json
+++ b/package.json
@@ -13,6 +13,7 @@
"@github/catalyst": "^1.1.3",
"dayjs": "^1.10.5",
"lit-html": "^1.4.1",
+ "prettier-plugin-html-template-literals": "^1.0.5",
"validator": "^13.6.0"
},
"devDependencies": {
@@ -21,6 +22,7 @@
"@babel/plugin-proposal-decorators": "^7.14.2",
"@babel/plugin-proposal-object-rest-spread": "^7.14.2",
"@babel/preset-env": "^7.14.2",
+ "@babel/preset-react": "^7.16.5",
"@babel/preset-typescript": "^7.13.0",
"@typescript-eslint/eslint-plugin": "^4.26.0",
"@typescript-eslint/parser": "^4.26.0",
@@ -36,7 +38,7 @@
"eslint-plugin-import": "^2.23.4",
"html-webpack-plugin": "^5.3.1",
"node-sass": "^6.0.0",
- "prettier": "^2.3.1",
+ "prettier": "^2.5.1",
"sass-loader": "^11.1.1",
"sass-to-string": "^1.5.1",
"terser-webpack-plugin": "^5.1.3",
diff --git a/src/common/core/BaseElement/BaseElement.ts b/src/common/core/BaseElement/BaseElement.ts
index 81d2249..a3d03fb 100644
--- a/src/common/core/BaseElement/BaseElement.ts
+++ b/src/common/core/BaseElement/BaseElement.ts
@@ -79,7 +79,14 @@ class BaseElement extends HTMLElement {
updateCallback = (): void => {};
update = (): void => {
- render(this.render(), this);
+ let _rendered = this.render();
+ console.log(typeof _rendered, _rendered);
+ if (typeof _rendered === 'string') {
+ const strings: any = [_rendered];
+ console.log('Mwa', strings);
+ _rendered = html(strings);
+ }
+ render(_rendered, this);
if (this.shadowRoot) {
const renderSlot = () => html``;
render(renderSlot(), this.shadowRoot);
diff --git a/src/common/pages/BasePageElement/BasePageElement.ts b/src/common/pages/BasePageElement/BasePageElement.ts
index b1df69c..0a98dc2 100644
--- a/src/common/pages/BasePageElement/BasePageElement.ts
+++ b/src/common/pages/BasePageElement/BasePageElement.ts
@@ -1,7 +1,6 @@
import { attr } from '@github/catalyst';
-import { html, render } from 'core/utils';
+import { html, render, isTrue, TemplateResult } from 'core/utils';
import { BaseElement } from 'common/';
-import { isTrue } from 'core/utils';
class BasePageElement extends BaseElement {
public _pageTitle: string = '';
@@ -31,7 +30,12 @@ class BasePageElement extends BaseElement {
};
update = (): void => {
- const _render = () => html` ${this.renderTitle()} ${this.render()} `;
+ let renderPage = this.render();
+ if (typeof renderPage === 'string') {
+ const strings: any = [renderPage];
+ renderPage = html(strings);
+ }
+ const _render = () => html` ${this.renderTitle()} ${renderPage} `;
render(_render(), this);
this.bindEvents('app-action');
this.updateCallback();
diff --git a/src/components/app-form/AppFormElementTemplate.ts b/src/components/app-form/AppFormElementTemplate.ts
deleted file mode 100644
index 004fa0e..0000000
--- a/src/components/app-form/AppFormElementTemplate.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-import { html, isTrue, nothing, TemplateResult } from 'core/utils';
-
-export default (props): TemplateResult => {
- const { renderInput, customRender, error, isValid, hasCancel } = props;
- const renderSubmit = (valid: boolean) => {
- if (!valid) {
- return html`
-
- `;
- }
- return html` `;
- };
- const renderError = (error: string) => {
- if (error) {
- return html`${error}`;
- }
- return html``;
- };
- const renderCancel = (hasCancel: boolean) => {
- if (hasCancel) {
- return html``;
- }
- return html``;
- };
-
- return html`
-
- `;
-};
diff --git a/src/components/app-form/AppFormElementTemplate.tsx b/src/components/app-form/AppFormElementTemplate.tsx
new file mode 100644
index 0000000..64b0637
--- /dev/null
+++ b/src/components/app-form/AppFormElementTemplate.tsx
@@ -0,0 +1,65 @@
+/** @jsx createElement */
+/** @jsx.Frag Fragment */
+
+import { html, isTrue, nothing, TemplateResult, createElement, Fragment } from 'core/utils';
+
+const renderSubmit = (valid: boolean) => {
+ if (!valid) {
+ return (
+
+ );
+ }
+ return (
+
+ );
+};
+const renderError = (error: string) => {
+ if (error) {
+ return ${error};
+ }
+ return null;
+};
+const renderCancel = (hasCancel: boolean) => {
+ if (hasCancel) {
+ return (
+
+ );
+ }
+ return null;
+};
+
+export default (props): TemplateResult => {
+ const { renderInput, customRender, error, isValid, hasCancel } = props;
+
+ return (
+
+ );
+};
diff --git a/src/components/wallet-header/WalletHeaderElementTemplate.ts b/src/components/wallet-header/WalletHeaderElementTemplate.ts
index 7b27327..91c45d4 100644
--- a/src/components/wallet-header/WalletHeaderElementTemplate.ts
+++ b/src/components/wallet-header/WalletHeaderElementTemplate.ts
@@ -3,7 +3,7 @@ import { html, nothing, TemplateResult } from 'core/utils';
export default (props): TemplateResult => {
const { currentBalance, currency, lastMonth, nextMonth, loader, initial } = props;
- const renderItem = (header, balance, currency) => html`