diff --git a/language-support/ts/daml-react/README.md b/language-support/ts/daml-react/README.md index 8542358265..a573b46736 100644 --- a/language-support/ts/daml-react/README.md +++ b/language-support/ts/daml-react/README.md @@ -30,6 +30,7 @@ const App: React.FC = () => { token: httpBaseUrl?: wsBaseUrl?: + reconnectThreshold?: party: > diff --git a/language-support/ts/daml-react/createLedgerContext.ts b/language-support/ts/daml-react/createLedgerContext.ts index b21dd832c3..e9ba951950 100644 --- a/language-support/ts/daml-react/createLedgerContext.ts +++ b/language-support/ts/daml-react/createLedgerContext.ts @@ -23,6 +23,7 @@ export type LedgerProps = { httpBaseUrl?: string; wsBaseUrl?: string; party: Party; + reconnectThreshold?: number; } /** @@ -86,9 +87,9 @@ export function createLedgerContext(contextName="DamlLedgerContext"): LedgerCont // not make a new network request although they are required to refresh data. const ledgerContext = React.createContext(undefined); - const DamlLedger: React.FC = ({token, httpBaseUrl, wsBaseUrl, party, children}) => { + const DamlLedger: React.FC = ({token, httpBaseUrl, wsBaseUrl, reconnectThreshold, party, children}) => { const [reloadToken, setReloadToken] = useState(0); - const ledger = useMemo(() => new Ledger({token, httpBaseUrl, wsBaseUrl}), [token, httpBaseUrl, wsBaseUrl]); + const ledger = useMemo(() => new Ledger({token, httpBaseUrl, wsBaseUrl, reconnectThreshold}), [token, httpBaseUrl, wsBaseUrl, reconnectThreshold]); const state: DamlLedgerState = useMemo(() => ({ reloadToken, triggerReload: (): void => setReloadToken(x => x + 1), diff --git a/language-support/ts/daml-react/index.test.ts b/language-support/ts/daml-react/index.test.ts index 79ed253e41..31007ef03c 100644 --- a/language-support/ts/daml-react/index.test.ts +++ b/language-support/ts/daml-react/index.test.ts @@ -69,7 +69,7 @@ const TOKEN = 'test_token'; const PARTY = 'test_party'; function renderDamlHook(callback: (props: P) => R): RenderHookResult { - const wrapper: ComponentType = ({children}) => React.createElement(DamlLedger, {token: TOKEN, party: PARTY}, children); + const wrapper: ComponentType = ({children}) => React.createElement(DamlLedger, {token: TOKEN, party: PARTY, reconnectThreshold: 1337}, children); return renderHook(callback, {wrapper}); } @@ -86,7 +86,7 @@ beforeEach(() => { test('DamlLedger', () => { renderDamlHook(() => { return; }); expect(mockConstructor).toHaveBeenCalledTimes(1); - expect(mockConstructor).toHaveBeenLastCalledWith({token: TOKEN, httpBaseUrl: undefined, wsBaseUrl: undefined}); + expect(mockConstructor).toHaveBeenLastCalledWith({token: TOKEN, httpBaseUrl: undefined, wsBaseUrl: undefined, reconnectThreshold: 1337}); }); test('useParty', () => {