import { LitElement, css, html } from 'lit';
import { customElement, property, state } from 'lit/decorators.js';
import * as React from 'react';
export const tagName = 'simple-counter';
// Adapt React in order to be able to use custom tags properly
declare global {
// eslint-disable-next-line @typescript-eslint/no-namespace
namespace JSX {
interface IntrinsicElements {
[tagName]: PersonInfoProps;
}
}
}
interface PersonInfoProps
extends React.DetailedHTMLProps<
React.HTMLAttributes,
HTMLElement
> {
name?: string;
}
// ===================== Adapt end ====================
@customElement(tagName)
export class Counter extends LitElement {
static styles = css`
.counter-container {
display: flex;
color: var(--affine-text-color);
}
button {
margin: 0 5px;
}
`;
@property()
name?: string = '';
@state()
count = 0;
// Render the UI as a function of component state
render() {
return html`
${this.name}
${this.count}
`;
}
private _increment() {
this.count++;
}
private _subtract() {
this.count--;
}
}