feat: init basic settings

This commit is contained in:
QiShaoXuan
2022-09-22 15:39:53 +08:00
commit c0b6ee9245
91 changed files with 8017 additions and 0 deletions
+59
View File
@@ -0,0 +1,59 @@
import { LitElement, css, html, unsafeCSS } from 'lit';
import { customElement, property, state } from 'lit/decorators.js';
import * as React from 'react';
import { theme } from '@/styles';
export const tagName = 'simple-counter';
// Adapt React in order to be able to use custom tags properly
declare global {
namespace JSX {
interface IntrinsicElements {
[tagName]: PersonInfoProps;
}
}
}
interface PersonInfoProps
extends React.DetailedHTMLProps<
React.HTMLAttributes<HTMLElement>,
HTMLElement
> {
name?: string;
}
// ===================== Adapt end ====================
@customElement(tagName)
export class Counter extends LitElement {
static styles = css`
.counter-container {
display: flex;
color: ${unsafeCSS(theme.colors.primary)};
}
button {
margin: 0 5px;
}
`;
@property()
name?: string = '';
@state()
count = 0;
// Render the UI as a function of component state
render() {
return html`<div class="counter-container">
<div class="name">${this.name}</div>
<button @click=${this._subtract}>-</button>
<div>${this.count}</div>
<button @click="${this._increment}">+</button>
</div>`;
}
private _increment(e: Event) {
this.count++;
}
private _subtract(e: Event) {
this.count--;
}
}