MCPcopy Create free account
hub / github.com/TanStack/query / LifecycleContractConsumer

Class LifecycleContractConsumer

examples/lit/basic/src/lifecycle-contract.ts:72–127  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

70}
71
72class LifecycleContractConsumer extends LitElement {
73 private readonly instanceId = ++contractConsumerInstanceCount
74
75 private readonly query = createQueryController<ContractProbeData, Error>(
76 this,
77 {
78 queryKey: contractQueryKey,
79 queryFn: () => {
80 throw new Error(
81 'Lifecycle contract fixture unexpectedly fetched from queryFn.',
82 )
83 },
84 retry: false,
85 staleTime: Number.POSITIVE_INFINITY,
86 },
87 )
88
89 protected override createRenderRoot(): HTMLElement | DocumentFragment {
90 return this
91 }
92
93 private renderQueryState() {
94 try {
95 const query = this.query()
96
97 return html`
98 <div data-testid="contract-query-status">query: ${query.status}</div>
99 <div data-testid="contract-provider-value">
100 provider: ${query.data?.provider ?? 'none'}
101 </div>
102 <div data-testid="contract-payload">
103 payload: ${query.data?.payload ?? 'none'}
104 </div>
105 <div data-testid="contract-error">
106 error: ${query.error ? String(query.error) : 'none'}
107 </div>
108 `
109 } catch (error) {
110 const message = error instanceof Error ? error.message : String(error)
111
112 return html`
113 <div data-testid="contract-query-status">query: missing-client</div>
114 <div data-testid="contract-provider-value">provider: none</div>
115 <div data-testid="contract-payload">payload: none</div>
116 <div data-testid="contract-error">error: ${message}</div>
117 `
118 }
119 }
120
121 render() {
122 return html`
123 <div data-testid="contract-instance-id">instance: ${this.instanceId}</div>
124 ${this.renderQueryState()}
125 `
126 }
127}
128
129if (!customElements.get('lifecycle-contract-consumer')) {

Callers

nothing calls this directly

Calls 1

createQueryControllerFunction · 0.90

Tested by

no test coverage detected