mirror of
https://github.com/shlinkio/shlink-web-client.git
synced 2026-03-17 21:13:48 +00:00
Expose container via provider
This commit is contained in:
@@ -3,6 +3,7 @@ import { memoizeWith } from '@shlinkio/data-manipulation';
|
||||
import type { ShlinkHealth } from '@shlinkio/shlink-web-component/api-contract';
|
||||
import { useCallback } from 'react';
|
||||
import type { ShlinkApiClientBuilder } from '../../api/services/ShlinkApiClientBuilder';
|
||||
import { useDependencies } from '../../container/context';
|
||||
import { useAppDispatch, useAppSelector } from '../../store';
|
||||
import { createAsyncThunk } from '../../store/helpers';
|
||||
import { versionToPrintable, versionToSemVer as toSemVer } from '../../utils/helpers/version';
|
||||
@@ -75,10 +76,11 @@ export const { reducer: selectedServerReducer } = createSlice({
|
||||
|
||||
export const useSelectedServer = () => {
|
||||
const dispatch = useAppDispatch();
|
||||
const [buildShlinkApiClient] = useDependencies<[ShlinkApiClientBuilder]>('buildShlinkApiClient');
|
||||
const dispatchResetSelectedServer = useCallback(() => dispatch(resetSelectedServer()), [dispatch]);
|
||||
const dispatchSelectServer = useCallback(
|
||||
(options: SelectServerOptions) => dispatch(selectServer(options)),
|
||||
[dispatch],
|
||||
(serverId: string) => dispatch(selectServer({ serverId, buildShlinkApiClient })),
|
||||
[buildShlinkApiClient, dispatch],
|
||||
);
|
||||
const selectedServer = useAppSelector(({ selectedServer }) => selectedServer);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user