prettier syntax (JSX) for rendering
This commit is contained in:
parent
7fb527b000
commit
0c8a6e21f0
@ -121,6 +121,7 @@ const paths = {
|
|||||||
const tsBaseArgs = {
|
const tsBaseArgs = {
|
||||||
target: "es6",
|
target: "es6",
|
||||||
jsx: "react",
|
jsx: "react",
|
||||||
|
reactNamespace: "preact",
|
||||||
experimentalDecorators: true,
|
experimentalDecorators: true,
|
||||||
module: "system",
|
module: "system",
|
||||||
sourceMap: true,
|
sourceMap: true,
|
||||||
|
4
lib/decl/preact.d.ts
vendored
4
lib/decl/preact.d.ts
vendored
@ -56,12 +56,16 @@ declare namespace preact {
|
|||||||
function h<PropsType>(node:ComponentConstructor<PropsType, any>, params:PropsType, ...children:(JSX.Element|string)[]):JSX.Element;
|
function h<PropsType>(node:ComponentConstructor<PropsType, any>, params:PropsType, ...children:(JSX.Element|string)[]):JSX.Element;
|
||||||
function h(node:string, params:JSX.HTMLAttributes|JSX.SVGAttributes, ...children:(JSX.Element|string)[]):JSX.Element;
|
function h(node:string, params:JSX.HTMLAttributes|JSX.SVGAttributes, ...children:(JSX.Element|string)[]):JSX.Element;
|
||||||
|
|
||||||
|
function createElement<PropsType>(node:ComponentConstructor<PropsType, any>, params:PropsType, ...children:(JSX.Element|string)[]):JSX.Element;
|
||||||
|
function createElement(node:string, params:JSX.HTMLAttributes|JSX.SVGAttributes, ...children:(JSX.Element|string)[]):JSX.Element;
|
||||||
|
|
||||||
function render(node:JSX.Element, parent:Element, merge?:boolean):Element;
|
function render(node:JSX.Element, parent:Element, merge?:boolean):Element;
|
||||||
|
|
||||||
function rerender():void;
|
function rerender():void;
|
||||||
|
|
||||||
function cloneElement(element:JSX.Element, props:any):JSX.Element;
|
function cloneElement(element:JSX.Element, props:any):JSX.Element;
|
||||||
|
|
||||||
|
|
||||||
var options:{
|
var options:{
|
||||||
syncComponentUpdates?:boolean;
|
syncComponentUpdates?:boolean;
|
||||||
debounceRendering?:(render:() => void) => void;
|
debounceRendering?:(render:() => void) => void;
|
||||||
|
1
lib/vendor/preact.js
vendored
1
lib/vendor/preact.js
vendored
@ -460,6 +460,7 @@
|
|||||||
render: function() {}
|
render: function() {}
|
||||||
});
|
});
|
||||||
exports.h = h;
|
exports.h = h;
|
||||||
|
exports.createElement = h;
|
||||||
exports.cloneElement = cloneElement;
|
exports.cloneElement = cloneElement;
|
||||||
exports.Component = Component;
|
exports.Component = Component;
|
||||||
exports.render = render;
|
exports.render = render;
|
||||||
|
@ -23,9 +23,6 @@
|
|||||||
|
|
||||||
import {AmountJson, Contract} from "./types";
|
import {AmountJson, Contract} from "./types";
|
||||||
|
|
||||||
|
|
||||||
let h = preact.h;
|
|
||||||
|
|
||||||
export function prettyAmount(amount: AmountJson) {
|
export function prettyAmount(amount: AmountJson) {
|
||||||
let v = amount.value + amount.fraction / 1e6;
|
let v = amount.value + amount.fraction / 1e6;
|
||||||
return `${v.toFixed(2)} ${amount.currency}`;
|
return `${v.toFixed(2)} ${amount.currency}`;
|
||||||
@ -35,15 +32,19 @@ export function renderContract(contract: Contract): JSX.Element {
|
|||||||
let merchantName = m("strong", contract.merchant.name);
|
let merchantName = m("strong", contract.merchant.name);
|
||||||
let amount = m("strong", prettyAmount(contract.amount));
|
let amount = m("strong", prettyAmount(contract.amount));
|
||||||
|
|
||||||
return h("div", {},
|
return (
|
||||||
h("p", {},
|
<div>
|
||||||
i18n.parts`${merchantName}
|
<p>{
|
||||||
|
i18n.parts`${merchantName}
|
||||||
wants to enter a contract over ${amount}
|
wants to enter a contract over ${amount}
|
||||||
with you.`),
|
with you.`}
|
||||||
h("p", {},
|
</p>
|
||||||
i18n`You are about to purchase:`),
|
<p>{i18n`You are about to purchase:`}</p>
|
||||||
h('ul', {},
|
<ul>
|
||||||
...contract.products.map(
|
{contract.products.map(
|
||||||
(p: any) => h("li", {},
|
(p: any) => (<li>{`${p.description}: ${prettyAmount(p.price)}`}</li>))
|
||||||
`${p.description}: ${prettyAmount(p.price)}`))));
|
}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
}
|
}
|
@ -51,13 +51,14 @@ class Details extends preact.Component<DetailProps, DetailState> {
|
|||||||
|
|
||||||
render(props: DetailProps, state: DetailState) {
|
render(props: DetailProps, state: DetailState) {
|
||||||
if (state.collapsed) {
|
if (state.collapsed) {
|
||||||
return h("div", {},
|
return (
|
||||||
h("button", {
|
<div>
|
||||||
className: "linky",
|
<button className="linky"
|
||||||
onClick: () => {
|
onClick={() => { this.setState({collapsed: false})}}>
|
||||||
this.setState({collapsed: false});
|
show more details
|
||||||
}
|
</button>
|
||||||
}, "show more details"));
|
</div>
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
return h("div", {},
|
return h("div", {},
|
||||||
h("button", {
|
h("button", {
|
||||||
@ -167,7 +168,7 @@ class ContractPrompt extends preact.Component<ContractPromptProps, ContractPromp
|
|||||||
i18n`Confirm Payment`),
|
i18n`Confirm Payment`),
|
||||||
(state.error ? h("p",
|
(state.error ? h("p",
|
||||||
{className: "errorbox"},
|
{className: "errorbox"},
|
||||||
state.error) : h("p", "")),
|
state.error) : h("p", "")),
|
||||||
h(Details, {contract: c})
|
h(Details, {contract: c})
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"target": "es6",
|
"target": "es6",
|
||||||
"jsx": "react",
|
"jsx": "react",
|
||||||
|
"reactNamespace": "preact",
|
||||||
"experimentalDecorators": true,
|
"experimentalDecorators": true,
|
||||||
"module": "system",
|
"module": "system",
|
||||||
"sourceMap": true,
|
"sourceMap": true,
|
||||||
@ -26,11 +27,11 @@
|
|||||||
"lib/wallet/helpers.ts",
|
"lib/wallet/helpers.ts",
|
||||||
"lib/wallet/http.ts",
|
"lib/wallet/http.ts",
|
||||||
"lib/wallet/query.ts",
|
"lib/wallet/query.ts",
|
||||||
"lib/wallet/renderHtml.ts",
|
|
||||||
"lib/wallet/types.ts",
|
"lib/wallet/types.ts",
|
||||||
"lib/wallet/wallet.ts",
|
"lib/wallet/wallet.ts",
|
||||||
"lib/wallet/wxApi.ts",
|
"lib/wallet/wxApi.ts",
|
||||||
"lib/wallet/wxMessaging.ts",
|
"lib/wallet/wxMessaging.ts",
|
||||||
|
"lib/wallet/renderHtml.tsx",
|
||||||
"background/main.ts",
|
"background/main.ts",
|
||||||
"content_scripts/notify.ts",
|
"content_scripts/notify.ts",
|
||||||
"popup/popup.tsx",
|
"popup/popup.tsx",
|
||||||
|
Loading…
Reference in New Issue
Block a user