@scm-manager/ui-api 2.47.0 → 2.48.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/index.d.ts +28 -1
- package/build/index.js +80 -25
- package/build/index.mjs +85 -33
- package/package.json +2 -2
package/build/index.d.ts
CHANGED
|
@@ -711,6 +711,19 @@ declare const useSearchSyntaxContent: (language: string) => {
|
|
|
711
711
|
|
|
712
712
|
declare const useLoginInfo: (disabled?: boolean) => ApiResult<LoginInfo>;
|
|
713
713
|
|
|
714
|
+
declare const useInvalidateAllCaches: () => {
|
|
715
|
+
invalidate: () => void;
|
|
716
|
+
isLoading: boolean;
|
|
717
|
+
isSuccess: boolean;
|
|
718
|
+
error: Error | null;
|
|
719
|
+
};
|
|
720
|
+
declare const useInvalidateSearchIndices: () => {
|
|
721
|
+
invalidate: () => void;
|
|
722
|
+
isLoading: boolean;
|
|
723
|
+
isSuccess: boolean;
|
|
724
|
+
error: Error | null;
|
|
725
|
+
};
|
|
726
|
+
|
|
714
727
|
declare const usePluginCenterAuthInfo: () => ApiResult<PluginCenterAuthenticationInfo>;
|
|
715
728
|
declare const usePluginCenterLogout: (authenticationInfo: PluginCenterAuthenticationInfo) => {
|
|
716
729
|
logout: () => void;
|
|
@@ -736,6 +749,20 @@ declare function useCancellablePromise(): <T>(p: Promise<T>) => CancelablePromis
|
|
|
736
749
|
declare const requiredLink: (object: HalRepresentation, name: string, subName?: string) => string;
|
|
737
750
|
declare const objectLink: (object: HalRepresentation, name: string) => string | null;
|
|
738
751
|
|
|
752
|
+
/**
|
|
753
|
+
* Cache provider for local storage which enables listening to changes and triggering re-renders when writing.
|
|
754
|
+
*
|
|
755
|
+
* Only required once as a wrapper for the whole application.
|
|
756
|
+
*
|
|
757
|
+
* @see useLocalStorage
|
|
758
|
+
*/
|
|
759
|
+
declare const LocalStorageProvider: FC;
|
|
760
|
+
/**
|
|
761
|
+
* Provides an api to access the browser's local storage for a given key.
|
|
762
|
+
*
|
|
763
|
+
* @param key The local storage key
|
|
764
|
+
* @param initialValue Value to be used if the local storage does not yet have the given key defined
|
|
765
|
+
*/
|
|
739
766
|
declare function useLocalStorage<T>(key: string, initialValue: T): [value: T, setValue: (value: T | ((previousConfig: T) => T)) => void];
|
|
740
767
|
|
|
741
768
|
declare const useGroupOptions: (query?: string) => react_query.UseQueryResult<Option<AutocompleteObject>[], Error>;
|
|
@@ -780,4 +807,4 @@ declare const RepositoryRevisionContextProvider: FC<{
|
|
|
780
807
|
revision?: string;
|
|
781
808
|
}>;
|
|
782
809
|
|
|
783
|
-
export { AdditionalMessage, ApiProvider, Props as ApiProviderProps, ApiResult, ApiResultWithFetching, BackendError, BackendErrorContent, BadGatewayError, BaseContext, CONTENT_TYPE_PUBLIC_KEY, CancelablePromise, ConflictError, ConvertToInternalRequest, DeleteFunction, ForbiddenError, LegacyContext, LegacyContextProvider, MissingLinkError, NamespaceAndNameContext, NamespaceAndNameContextProvider, NotFoundError, RepositoryContextProvider, RepositoryRevisionContextProvider, SearchOptions, TOKEN_EXPIRED_ERROR_CODE, TokenExpiredError, UnauthorizedError, UseAvailablePluginsOptions, UseDeleteRepositoryOptions, UseGroupsRequest, UseHistoryRequest, UseInstalledPluginsOptions, UseRepositoriesRequest, UseRepositoryRolesRequest, UseSourcesOptions, UseUsersRequest, Violation, apiClient, changesetQueryKey, clearCache, createBackendError, createChangesetUrl, createDiffUrl, createQueryString, createUrl, createUrlWithIdentifiers, extractXsrfTokenFromCookie, fetchResourceFromLocationHeader, getResponseJson, isBackendError, makeCancelable, objectLink, requiredLink, urls, useAlerts, useAnnotations, useApiKeys, useArchiveRepository, useAvailableGlobalPermissions, useAvailablePermissions, useAvailablePlugins, useBranch, useBranchDetails, useBranchDetailsCollection, useBranches, useCancelPendingPlugins, useCancellablePromise, useChangeUserPassword, useChangeset, useChangesets, useClearNotifications, useConfig, useConfigLink, useContentType, useConvertToExternal, useConvertToInternal, useCreateApiKey, useCreateBranch, useCreateGroup, useCreatePermission, useCreatePublicKey, useCreateRepository, useCreateRepositoryRole, useCreateTag, useCreateUser, useDefaultBranch, useDeleteApiKey, useDeleteBranch, useDeleteGroup, useDeletePermission, useDeletePublicKey, useDeleteRepository, useDeleteRepositoryRole, useDeleteTag, useDeleteUser, useDiff, useDismissNotification, useExecutePendingPlugins, useExportInfo, useExportRepository, useFileContent, useGroup, useGroupOptions, useGroupPermissions, useGroupSuggestions, useGroups, useHistory, useImportFullRepository, useImportLog, useImportRepositoryFromBundle, useImportRepositoryFromUrl, useIncomingChangesets, useIndex, useIndexJsonResource, useIndexLink, useIndexLinks, useInstallPlugin, useInstalledPlugins, useJsonResource, useLegacyContext, useLocalStorage, useLogin, useLoginInfo, useLogout, useMe, useNamespace, useNamespaceAndNameContext, useNamespaceOptions, useNamespaceStrategies, useNamespaceSuggestions, useNamespaces, useNotificationSubscription, useNotifications, useOmniSearch, usePaths, usePendingPlugins, usePermissions, usePluginCenterAuthInfo, usePluginCenterLogout, usePublicKeys, useReindexRepository, useRenameRepository, useRepositories, useRepository, useRepositoryContext, useRepositoryRevisionContext, useRepositoryRole, useRepositoryRoles, useRepositoryTypes, useRepositoryVerbs, useRequiredIndexLink, useRequiredMe, useRunHealthCheck, useSearch, useSearchCounts, useSearchHelpContent, useSearchSyntaxContent, useSearchTypes, useSearchableTypes, useSetGroupPermissions, useSetUserPassword, useSetUserPermissions, useSources, useSubject, useSuggestions, useTag, useTags, useUnarchiveRepository, useUninstallPlugin, useUpdateConfig, useUpdateGroup, useUpdateInfo, useUpdatePermission, useUpdatePlugins, useUpdateRepository, useUpdateRepositoryRole, useUpdateUser, useUser, useUserOptions, useUserPermissionOverview, useUserPermissions, useUserSuggestions, useUsers, useVersion, waitForRestartAfter };
|
|
810
|
+
export { AdditionalMessage, ApiProvider, Props as ApiProviderProps, ApiResult, ApiResultWithFetching, BackendError, BackendErrorContent, BadGatewayError, BaseContext, CONTENT_TYPE_PUBLIC_KEY, CancelablePromise, ConflictError, ConvertToInternalRequest, DeleteFunction, ForbiddenError, LegacyContext, LegacyContextProvider, LocalStorageProvider, MissingLinkError, NamespaceAndNameContext, NamespaceAndNameContextProvider, NotFoundError, RepositoryContextProvider, RepositoryRevisionContextProvider, SearchOptions, TOKEN_EXPIRED_ERROR_CODE, TokenExpiredError, UnauthorizedError, UseAvailablePluginsOptions, UseDeleteRepositoryOptions, UseGroupsRequest, UseHistoryRequest, UseInstalledPluginsOptions, UseRepositoriesRequest, UseRepositoryRolesRequest, UseSourcesOptions, UseUsersRequest, Violation, apiClient, changesetQueryKey, clearCache, createBackendError, createChangesetUrl, createDiffUrl, createQueryString, createUrl, createUrlWithIdentifiers, extractXsrfTokenFromCookie, fetchResourceFromLocationHeader, getResponseJson, isBackendError, makeCancelable, objectLink, requiredLink, urls, useAlerts, useAnnotations, useApiKeys, useArchiveRepository, useAvailableGlobalPermissions, useAvailablePermissions, useAvailablePlugins, useBranch, useBranchDetails, useBranchDetailsCollection, useBranches, useCancelPendingPlugins, useCancellablePromise, useChangeUserPassword, useChangeset, useChangesets, useClearNotifications, useConfig, useConfigLink, useContentType, useConvertToExternal, useConvertToInternal, useCreateApiKey, useCreateBranch, useCreateGroup, useCreatePermission, useCreatePublicKey, useCreateRepository, useCreateRepositoryRole, useCreateTag, useCreateUser, useDefaultBranch, useDeleteApiKey, useDeleteBranch, useDeleteGroup, useDeletePermission, useDeletePublicKey, useDeleteRepository, useDeleteRepositoryRole, useDeleteTag, useDeleteUser, useDiff, useDismissNotification, useExecutePendingPlugins, useExportInfo, useExportRepository, useFileContent, useGroup, useGroupOptions, useGroupPermissions, useGroupSuggestions, useGroups, useHistory, useImportFullRepository, useImportLog, useImportRepositoryFromBundle, useImportRepositoryFromUrl, useIncomingChangesets, useIndex, useIndexJsonResource, useIndexLink, useIndexLinks, useInstallPlugin, useInstalledPlugins, useInvalidateAllCaches, useInvalidateSearchIndices, useJsonResource, useLegacyContext, useLocalStorage, useLogin, useLoginInfo, useLogout, useMe, useNamespace, useNamespaceAndNameContext, useNamespaceOptions, useNamespaceStrategies, useNamespaceSuggestions, useNamespaces, useNotificationSubscription, useNotifications, useOmniSearch, usePaths, usePendingPlugins, usePermissions, usePluginCenterAuthInfo, usePluginCenterLogout, usePublicKeys, useReindexRepository, useRenameRepository, useRepositories, useRepository, useRepositoryContext, useRepositoryRevisionContext, useRepositoryRole, useRepositoryRoles, useRepositoryTypes, useRepositoryVerbs, useRequiredIndexLink, useRequiredMe, useRunHealthCheck, useSearch, useSearchCounts, useSearchHelpContent, useSearchSyntaxContent, useSearchTypes, useSearchableTypes, useSetGroupPermissions, useSetUserPassword, useSetUserPermissions, useSources, useSubject, useSuggestions, useTag, useTags, useUnarchiveRepository, useUninstallPlugin, useUpdateConfig, useUpdateGroup, useUpdateInfo, useUpdatePermission, useUpdatePlugins, useUpdateRepository, useUpdateRepositoryRole, useUpdateUser, useUser, useUserOptions, useUserPermissionOverview, useUserPermissions, useUserSuggestions, useUsers, useVersion, waitForRestartAfter };
|
package/build/index.js
CHANGED
|
@@ -33,6 +33,7 @@ __export(src_exports, {
|
|
|
33
33
|
ConflictError: () => ConflictError,
|
|
34
34
|
ForbiddenError: () => ForbiddenError,
|
|
35
35
|
LegacyContextProvider: () => LegacyContextProvider,
|
|
36
|
+
LocalStorageProvider: () => LocalStorageProvider,
|
|
36
37
|
MissingLinkError: () => MissingLinkError,
|
|
37
38
|
NamespaceAndNameContextProvider: () => NamespaceAndNameContextProvider,
|
|
38
39
|
NotFoundError: () => NotFoundError,
|
|
@@ -122,6 +123,8 @@ __export(src_exports, {
|
|
|
122
123
|
useIndexLinks: () => useIndexLinks,
|
|
123
124
|
useInstallPlugin: () => useInstallPlugin,
|
|
124
125
|
useInstalledPlugins: () => useInstalledPlugins,
|
|
126
|
+
useInvalidateAllCaches: () => useInvalidateAllCaches,
|
|
127
|
+
useInvalidateSearchIndices: () => useInvalidateSearchIndices,
|
|
125
128
|
useJsonResource: () => useJsonResource,
|
|
126
129
|
useLegacyContext: () => useLegacyContext,
|
|
127
130
|
useLocalStorage: () => useLocalStorage,
|
|
@@ -3259,8 +3262,30 @@ var useLoginInfo = (disabled = false) => {
|
|
|
3259
3262
|
};
|
|
3260
3263
|
};
|
|
3261
3264
|
|
|
3262
|
-
// src/
|
|
3265
|
+
// src/useInvalidation.tsx
|
|
3263
3266
|
var import_react_query31 = require("react-query");
|
|
3267
|
+
var useInvalidation = (link) => {
|
|
3268
|
+
const { mutate, isLoading, error, isSuccess } = (0, import_react_query31.useMutation)(
|
|
3269
|
+
(link2) => apiClient.post(link2, {})
|
|
3270
|
+
);
|
|
3271
|
+
return {
|
|
3272
|
+
invalidate: () => mutate(link),
|
|
3273
|
+
isLoading,
|
|
3274
|
+
isSuccess,
|
|
3275
|
+
error
|
|
3276
|
+
};
|
|
3277
|
+
};
|
|
3278
|
+
var useInvalidateAllCaches = () => {
|
|
3279
|
+
const invalidateCacheLink = useRequiredIndexLink("invalidateCaches");
|
|
3280
|
+
return useInvalidation(invalidateCacheLink);
|
|
3281
|
+
};
|
|
3282
|
+
var useInvalidateSearchIndices = () => {
|
|
3283
|
+
const invalidateSearchIndexLink = useRequiredIndexLink("invalidateSearchIndex");
|
|
3284
|
+
return useInvalidation(invalidateSearchIndexLink);
|
|
3285
|
+
};
|
|
3286
|
+
|
|
3287
|
+
// src/usePluginCenterAuthInfo.ts
|
|
3288
|
+
var import_react_query32 = require("react-query");
|
|
3264
3289
|
var import_react_router_dom = require("react-router-dom");
|
|
3265
3290
|
var appendQueryParam = (link, name, value) => {
|
|
3266
3291
|
let href = link.href;
|
|
@@ -3274,7 +3299,7 @@ var appendQueryParam = (link, name, value) => {
|
|
|
3274
3299
|
var usePluginCenterAuthInfo = () => {
|
|
3275
3300
|
const link = useIndexLink("pluginCenterAuth");
|
|
3276
3301
|
const location = (0, import_react_router_dom.useLocation)();
|
|
3277
|
-
return (0,
|
|
3302
|
+
return (0, import_react_query32.useQuery)(
|
|
3278
3303
|
["pluginCenterAuth"],
|
|
3279
3304
|
() => {
|
|
3280
3305
|
if (!link) {
|
|
@@ -3297,8 +3322,8 @@ var usePluginCenterAuthInfo = () => {
|
|
|
3297
3322
|
);
|
|
3298
3323
|
};
|
|
3299
3324
|
var usePluginCenterLogout = (authenticationInfo) => {
|
|
3300
|
-
const queryClient2 = (0,
|
|
3301
|
-
const { mutate, isLoading, error } = (0,
|
|
3325
|
+
const queryClient2 = (0, import_react_query32.useQueryClient)();
|
|
3326
|
+
const { mutate, isLoading, error } = (0, import_react_query32.useMutation)(
|
|
3302
3327
|
() => {
|
|
3303
3328
|
if (!authenticationInfo._links.logout) {
|
|
3304
3329
|
throw new Error("authenticationInfo has no logout link");
|
|
@@ -3320,7 +3345,7 @@ var usePluginCenterLogout = (authenticationInfo) => {
|
|
|
3320
3345
|
};
|
|
3321
3346
|
|
|
3322
3347
|
// src/compare.ts
|
|
3323
|
-
var
|
|
3348
|
+
var import_react_query33 = require("react-query");
|
|
3324
3349
|
function createIncomingUrl(repository, linkName, source, target) {
|
|
3325
3350
|
const link = repository._links[linkName];
|
|
3326
3351
|
if (link == null ? void 0 : link.templated) {
|
|
@@ -3340,7 +3365,7 @@ function createDiffUrl(repository, source, target) {
|
|
|
3340
3365
|
}
|
|
3341
3366
|
}
|
|
3342
3367
|
var useIncomingChangesets = (repository, source, target, request) => {
|
|
3343
|
-
const queryClient2 = (0,
|
|
3368
|
+
const queryClient2 = (0, import_react_query33.useQueryClient)();
|
|
3344
3369
|
let link = createChangesetUrl(repository, source, target);
|
|
3345
3370
|
if ((request == null ? void 0 : request.page) || (request == null ? void 0 : request.limit)) {
|
|
3346
3371
|
if ((request == null ? void 0 : request.page) && (request == null ? void 0 : request.limit)) {
|
|
@@ -3351,7 +3376,7 @@ var useIncomingChangesets = (repository, source, target, request) => {
|
|
|
3351
3376
|
link = `${link}?pageSize=${request.limit}`;
|
|
3352
3377
|
}
|
|
3353
3378
|
}
|
|
3354
|
-
return (0,
|
|
3379
|
+
return (0, import_react_query33.useQuery)(
|
|
3355
3380
|
["repository", repository.namespace, repository.name, "compare", source, target, "changesets", (request == null ? void 0 : request.page) || 0],
|
|
3356
3381
|
() => apiClient.get(link).then((response) => response.json()),
|
|
3357
3382
|
{
|
|
@@ -3365,29 +3390,56 @@ var useIncomingChangesets = (repository, source, target, request) => {
|
|
|
3365
3390
|
);
|
|
3366
3391
|
};
|
|
3367
3392
|
|
|
3368
|
-
// src/localStorage.
|
|
3369
|
-
var import_react10 = require("react");
|
|
3393
|
+
// src/localStorage.tsx
|
|
3394
|
+
var import_react10 = __toESM(require("react"));
|
|
3395
|
+
var LocalStorageContext = (0, import_react10.createContext)(null);
|
|
3396
|
+
var LocalStorageProvider = ({ children }) => {
|
|
3397
|
+
const [localStorageCache, setLocalStorageCache] = (0, import_react10.useState)({});
|
|
3398
|
+
const setItem = (0, import_react10.useCallback)((key, value) => {
|
|
3399
|
+
localStorage.setItem(key, JSON.stringify(value));
|
|
3400
|
+
setLocalStorageCache((prevState) => ({
|
|
3401
|
+
...prevState,
|
|
3402
|
+
[key]: value
|
|
3403
|
+
}));
|
|
3404
|
+
}, []);
|
|
3405
|
+
const getItem = (0, import_react10.useCallback)(
|
|
3406
|
+
(key, initialValue) => {
|
|
3407
|
+
let initialLoadResult;
|
|
3408
|
+
if (!(key in localStorageCache)) {
|
|
3409
|
+
try {
|
|
3410
|
+
const item = localStorage.getItem(key);
|
|
3411
|
+
initialLoadResult = item ? JSON.parse(item) : initialValue;
|
|
3412
|
+
} catch (error) {
|
|
3413
|
+
console.error(error);
|
|
3414
|
+
initialLoadResult = initialValue;
|
|
3415
|
+
}
|
|
3416
|
+
setItem(key, initialLoadResult);
|
|
3417
|
+
}
|
|
3418
|
+
return initialLoadResult != null ? initialLoadResult : localStorageCache[key];
|
|
3419
|
+
},
|
|
3420
|
+
[localStorageCache, setItem]
|
|
3421
|
+
);
|
|
3422
|
+
return /* @__PURE__ */ import_react10.default.createElement(LocalStorageContext.Provider, {
|
|
3423
|
+
value: (0, import_react10.useMemo)(() => ({ getItem, setItem }), [getItem, setItem])
|
|
3424
|
+
}, children);
|
|
3425
|
+
};
|
|
3370
3426
|
function useLocalStorage(key, initialValue) {
|
|
3371
|
-
const
|
|
3372
|
-
|
|
3373
|
-
|
|
3374
|
-
|
|
3375
|
-
|
|
3376
|
-
|
|
3377
|
-
|
|
3378
|
-
}
|
|
3379
|
-
});
|
|
3380
|
-
(0, import_react10.useEffect)(() => localStorage.setItem(key, JSON.stringify(value)), [key, value]);
|
|
3381
|
-
return [value, setValue];
|
|
3427
|
+
const { getItem, setItem } = (0, import_react10.useContext)(LocalStorageContext);
|
|
3428
|
+
const value = (0, import_react10.useMemo)(() => getItem(key, initialValue), [getItem, initialValue, key]);
|
|
3429
|
+
const setValue = (0, import_react10.useCallback)(
|
|
3430
|
+
(newValue) => setItem(key, typeof newValue === "function" ? newValue(value) : newValue),
|
|
3431
|
+
[key, setItem, value]
|
|
3432
|
+
);
|
|
3433
|
+
return (0, import_react10.useMemo)(() => [value, setValue], [setValue, value]);
|
|
3382
3434
|
}
|
|
3383
3435
|
|
|
3384
3436
|
// src/useAutocompleteOptions.ts
|
|
3385
|
-
var
|
|
3437
|
+
var import_react_query34 = require("react-query");
|
|
3386
3438
|
var import_react_i18next = require("react-i18next");
|
|
3387
3439
|
var defaultLabelFactory = (element) => element.displayName ? `${element.displayName} (${element.id})` : element.id;
|
|
3388
3440
|
function useAutocompleteOptions(query = "", link, options = {}) {
|
|
3389
3441
|
const [t] = (0, import_react_i18next.useTranslation)("commons");
|
|
3390
|
-
return (0,
|
|
3442
|
+
return (0, import_react_query34.useQuery)(
|
|
3391
3443
|
["options", link, query],
|
|
3392
3444
|
() => apiClient.get(link + "?q=" + query).then((r) => r.json()).then((json) => {
|
|
3393
3445
|
const result = json.map((element) => ({
|
|
@@ -3437,9 +3489,9 @@ var useUserOptions = (query) => {
|
|
|
3437
3489
|
|
|
3438
3490
|
// src/ApiProvider.tsx
|
|
3439
3491
|
var import_react11 = __toESM(require("react"));
|
|
3440
|
-
var
|
|
3492
|
+
var import_react_query35 = require("react-query");
|
|
3441
3493
|
var import_devtools = require("react-query/devtools");
|
|
3442
|
-
var queryClient = new
|
|
3494
|
+
var queryClient = new import_react_query35.QueryClient({
|
|
3443
3495
|
defaultOptions: {
|
|
3444
3496
|
queries: {
|
|
3445
3497
|
retry: false
|
|
@@ -3463,7 +3515,7 @@ var ApiProvider = ({ children, index, me, onMeFetched, onIndexFetched, devtools
|
|
|
3463
3515
|
}
|
|
3464
3516
|
}
|
|
3465
3517
|
}, [me, onMeFetched]);
|
|
3466
|
-
return /* @__PURE__ */ import_react11.default.createElement(
|
|
3518
|
+
return /* @__PURE__ */ import_react11.default.createElement(import_react_query35.QueryClientProvider, {
|
|
3467
3519
|
client: queryClient
|
|
3468
3520
|
}, /* @__PURE__ */ import_react11.default.createElement(LegacyContextProvider, {
|
|
3469
3521
|
onIndexFetched,
|
|
@@ -3519,6 +3571,7 @@ var RepositoryRevisionContextProvider = ({ revision, children }) => /* @__PURE__
|
|
|
3519
3571
|
ConflictError,
|
|
3520
3572
|
ForbiddenError,
|
|
3521
3573
|
LegacyContextProvider,
|
|
3574
|
+
LocalStorageProvider,
|
|
3522
3575
|
MissingLinkError,
|
|
3523
3576
|
NamespaceAndNameContextProvider,
|
|
3524
3577
|
NotFoundError,
|
|
@@ -3608,6 +3661,8 @@ var RepositoryRevisionContextProvider = ({ revision, children }) => /* @__PURE__
|
|
|
3608
3661
|
useIndexLinks,
|
|
3609
3662
|
useInstallPlugin,
|
|
3610
3663
|
useInstalledPlugins,
|
|
3664
|
+
useInvalidateAllCaches,
|
|
3665
|
+
useInvalidateSearchIndices,
|
|
3611
3666
|
useJsonResource,
|
|
3612
3667
|
useLegacyContext,
|
|
3613
3668
|
useLocalStorage,
|
package/build/index.mjs
CHANGED
|
@@ -3071,8 +3071,30 @@ var useLoginInfo = (disabled = false) => {
|
|
|
3071
3071
|
};
|
|
3072
3072
|
};
|
|
3073
3073
|
|
|
3074
|
+
// src/useInvalidation.tsx
|
|
3075
|
+
import { useMutation as useMutation16 } from "react-query";
|
|
3076
|
+
var useInvalidation = (link) => {
|
|
3077
|
+
const { mutate, isLoading, error, isSuccess } = useMutation16(
|
|
3078
|
+
(link2) => apiClient.post(link2, {})
|
|
3079
|
+
);
|
|
3080
|
+
return {
|
|
3081
|
+
invalidate: () => mutate(link),
|
|
3082
|
+
isLoading,
|
|
3083
|
+
isSuccess,
|
|
3084
|
+
error
|
|
3085
|
+
};
|
|
3086
|
+
};
|
|
3087
|
+
var useInvalidateAllCaches = () => {
|
|
3088
|
+
const invalidateCacheLink = useRequiredIndexLink("invalidateCaches");
|
|
3089
|
+
return useInvalidation(invalidateCacheLink);
|
|
3090
|
+
};
|
|
3091
|
+
var useInvalidateSearchIndices = () => {
|
|
3092
|
+
const invalidateSearchIndexLink = useRequiredIndexLink("invalidateSearchIndex");
|
|
3093
|
+
return useInvalidation(invalidateSearchIndexLink);
|
|
3094
|
+
};
|
|
3095
|
+
|
|
3074
3096
|
// src/usePluginCenterAuthInfo.ts
|
|
3075
|
-
import { useMutation as
|
|
3097
|
+
import { useMutation as useMutation17, useQuery as useQuery27, useQueryClient as useQueryClient18 } from "react-query";
|
|
3076
3098
|
import { useLocation } from "react-router-dom";
|
|
3077
3099
|
var appendQueryParam = (link, name, value) => {
|
|
3078
3100
|
let href = link.href;
|
|
@@ -3110,7 +3132,7 @@ var usePluginCenterAuthInfo = () => {
|
|
|
3110
3132
|
};
|
|
3111
3133
|
var usePluginCenterLogout = (authenticationInfo) => {
|
|
3112
3134
|
const queryClient2 = useQueryClient18();
|
|
3113
|
-
const { mutate, isLoading, error } =
|
|
3135
|
+
const { mutate, isLoading, error } = useMutation17(
|
|
3114
3136
|
() => {
|
|
3115
3137
|
if (!authenticationInfo._links.logout) {
|
|
3116
3138
|
throw new Error("authenticationInfo has no logout link");
|
|
@@ -3177,20 +3199,47 @@ var useIncomingChangesets = (repository, source, target, request) => {
|
|
|
3177
3199
|
);
|
|
3178
3200
|
};
|
|
3179
3201
|
|
|
3180
|
-
// src/localStorage.
|
|
3181
|
-
import {
|
|
3202
|
+
// src/localStorage.tsx
|
|
3203
|
+
import React2, { createContext as createContext2, useCallback as useCallback5, useContext as useContext2, useMemo, useState as useState4 } from "react";
|
|
3204
|
+
var LocalStorageContext = createContext2(null);
|
|
3205
|
+
var LocalStorageProvider = ({ children }) => {
|
|
3206
|
+
const [localStorageCache, setLocalStorageCache] = useState4({});
|
|
3207
|
+
const setItem = useCallback5((key, value) => {
|
|
3208
|
+
localStorage.setItem(key, JSON.stringify(value));
|
|
3209
|
+
setLocalStorageCache((prevState) => ({
|
|
3210
|
+
...prevState,
|
|
3211
|
+
[key]: value
|
|
3212
|
+
}));
|
|
3213
|
+
}, []);
|
|
3214
|
+
const getItem = useCallback5(
|
|
3215
|
+
(key, initialValue) => {
|
|
3216
|
+
let initialLoadResult;
|
|
3217
|
+
if (!(key in localStorageCache)) {
|
|
3218
|
+
try {
|
|
3219
|
+
const item = localStorage.getItem(key);
|
|
3220
|
+
initialLoadResult = item ? JSON.parse(item) : initialValue;
|
|
3221
|
+
} catch (error) {
|
|
3222
|
+
console.error(error);
|
|
3223
|
+
initialLoadResult = initialValue;
|
|
3224
|
+
}
|
|
3225
|
+
setItem(key, initialLoadResult);
|
|
3226
|
+
}
|
|
3227
|
+
return initialLoadResult != null ? initialLoadResult : localStorageCache[key];
|
|
3228
|
+
},
|
|
3229
|
+
[localStorageCache, setItem]
|
|
3230
|
+
);
|
|
3231
|
+
return /* @__PURE__ */ React2.createElement(LocalStorageContext.Provider, {
|
|
3232
|
+
value: useMemo(() => ({ getItem, setItem }), [getItem, setItem])
|
|
3233
|
+
}, children);
|
|
3234
|
+
};
|
|
3182
3235
|
function useLocalStorage(key, initialValue) {
|
|
3183
|
-
const
|
|
3184
|
-
|
|
3185
|
-
|
|
3186
|
-
|
|
3187
|
-
|
|
3188
|
-
|
|
3189
|
-
|
|
3190
|
-
}
|
|
3191
|
-
});
|
|
3192
|
-
useEffect7(() => localStorage.setItem(key, JSON.stringify(value)), [key, value]);
|
|
3193
|
-
return [value, setValue];
|
|
3236
|
+
const { getItem, setItem } = useContext2(LocalStorageContext);
|
|
3237
|
+
const value = useMemo(() => getItem(key, initialValue), [getItem, initialValue, key]);
|
|
3238
|
+
const setValue = useCallback5(
|
|
3239
|
+
(newValue) => setItem(key, typeof newValue === "function" ? newValue(value) : newValue),
|
|
3240
|
+
[key, setItem, value]
|
|
3241
|
+
);
|
|
3242
|
+
return useMemo(() => [value, setValue], [setValue, value]);
|
|
3194
3243
|
}
|
|
3195
3244
|
|
|
3196
3245
|
// src/useAutocompleteOptions.ts
|
|
@@ -3248,7 +3297,7 @@ var useUserOptions = (query) => {
|
|
|
3248
3297
|
};
|
|
3249
3298
|
|
|
3250
3299
|
// src/ApiProvider.tsx
|
|
3251
|
-
import
|
|
3300
|
+
import React3, { useEffect as useEffect7 } from "react";
|
|
3252
3301
|
import { QueryClient as QueryClient4, QueryClientProvider } from "react-query";
|
|
3253
3302
|
import { ReactQueryDevtools } from "react-query/devtools";
|
|
3254
3303
|
var queryClient = new QueryClient4({
|
|
@@ -3259,7 +3308,7 @@ var queryClient = new QueryClient4({
|
|
|
3259
3308
|
}
|
|
3260
3309
|
});
|
|
3261
3310
|
var ApiProvider = ({ children, index, me, onMeFetched, onIndexFetched, devtools = true }) => {
|
|
3262
|
-
|
|
3311
|
+
useEffect7(() => {
|
|
3263
3312
|
if (index) {
|
|
3264
3313
|
queryClient.setQueryData("index", index);
|
|
3265
3314
|
if (onIndexFetched) {
|
|
@@ -3267,7 +3316,7 @@ var ApiProvider = ({ children, index, me, onMeFetched, onIndexFetched, devtools
|
|
|
3267
3316
|
}
|
|
3268
3317
|
}
|
|
3269
3318
|
}, [index, onIndexFetched]);
|
|
3270
|
-
|
|
3319
|
+
useEffect7(() => {
|
|
3271
3320
|
if (me) {
|
|
3272
3321
|
queryClient.setQueryData("me", me);
|
|
3273
3322
|
if (onMeFetched) {
|
|
@@ -3275,12 +3324,12 @@ var ApiProvider = ({ children, index, me, onMeFetched, onIndexFetched, devtools
|
|
|
3275
3324
|
}
|
|
3276
3325
|
}
|
|
3277
3326
|
}, [me, onMeFetched]);
|
|
3278
|
-
return /* @__PURE__ */
|
|
3327
|
+
return /* @__PURE__ */ React3.createElement(QueryClientProvider, {
|
|
3279
3328
|
client: queryClient
|
|
3280
|
-
}, /* @__PURE__ */
|
|
3329
|
+
}, /* @__PURE__ */ React3.createElement(LegacyContextProvider, {
|
|
3281
3330
|
onIndexFetched,
|
|
3282
3331
|
onMeFetched
|
|
3283
|
-
}, children), devtools ? /* @__PURE__ */
|
|
3332
|
+
}, children), devtools ? /* @__PURE__ */ React3.createElement(ReactQueryDevtools, {
|
|
3284
3333
|
initialIsOpen: false
|
|
3285
3334
|
}) : null);
|
|
3286
3335
|
};
|
|
@@ -3290,10 +3339,10 @@ var clearCache = () => {
|
|
|
3290
3339
|
var ApiProvider_default = ApiProvider;
|
|
3291
3340
|
|
|
3292
3341
|
// src/NamespaceAndNameContext.tsx
|
|
3293
|
-
import
|
|
3294
|
-
var Context2 =
|
|
3342
|
+
import React4, { createContext as createContext3, useContext as useContext3, useState as useState5 } from "react";
|
|
3343
|
+
var Context2 = createContext3(void 0);
|
|
3295
3344
|
var useNamespaceAndNameContext = () => {
|
|
3296
|
-
const context =
|
|
3345
|
+
const context = useContext3(Context2);
|
|
3297
3346
|
if (!context) {
|
|
3298
3347
|
throw new Error("useNamespaceAndNameContext can't be used outside of ApiProvider");
|
|
3299
3348
|
}
|
|
@@ -3302,24 +3351,24 @@ var useNamespaceAndNameContext = () => {
|
|
|
3302
3351
|
var NamespaceAndNameContextProvider = ({ children }) => {
|
|
3303
3352
|
const [namespace, setNamespace] = useState5("");
|
|
3304
3353
|
const [name, setName] = useState5("");
|
|
3305
|
-
return /* @__PURE__ */
|
|
3354
|
+
return /* @__PURE__ */ React4.createElement(Context2.Provider, {
|
|
3306
3355
|
value: { namespace, setNamespace, name, setName }
|
|
3307
3356
|
}, children);
|
|
3308
3357
|
};
|
|
3309
3358
|
|
|
3310
3359
|
// src/RepositoryContext.tsx
|
|
3311
|
-
import
|
|
3312
|
-
var Context3 =
|
|
3313
|
-
var useRepositoryContext = () =>
|
|
3314
|
-
var RepositoryContextProvider = ({ repository, children }) => /* @__PURE__ */
|
|
3360
|
+
import React5, { createContext as createContext4, useContext as useContext4 } from "react";
|
|
3361
|
+
var Context3 = createContext4(void 0);
|
|
3362
|
+
var useRepositoryContext = () => useContext4(Context3);
|
|
3363
|
+
var RepositoryContextProvider = ({ repository, children }) => /* @__PURE__ */ React5.createElement(Context3.Provider, {
|
|
3315
3364
|
value: repository
|
|
3316
3365
|
}, children);
|
|
3317
3366
|
|
|
3318
3367
|
// src/RepositoryRevisionContext.tsx
|
|
3319
|
-
import
|
|
3320
|
-
var Context4 =
|
|
3321
|
-
var useRepositoryRevisionContext = () =>
|
|
3322
|
-
var RepositoryRevisionContextProvider = ({ revision, children }) => /* @__PURE__ */
|
|
3368
|
+
import React6, { createContext as createContext5, useContext as useContext5 } from "react";
|
|
3369
|
+
var Context4 = createContext5(void 0);
|
|
3370
|
+
var useRepositoryRevisionContext = () => useContext5(Context4);
|
|
3371
|
+
var RepositoryRevisionContextProvider = ({ revision, children }) => /* @__PURE__ */ React6.createElement(Context4.Provider, {
|
|
3323
3372
|
value: revision
|
|
3324
3373
|
}, children);
|
|
3325
3374
|
export {
|
|
@@ -3330,6 +3379,7 @@ export {
|
|
|
3330
3379
|
ConflictError,
|
|
3331
3380
|
ForbiddenError,
|
|
3332
3381
|
LegacyContextProvider,
|
|
3382
|
+
LocalStorageProvider,
|
|
3333
3383
|
MissingLinkError,
|
|
3334
3384
|
NamespaceAndNameContextProvider,
|
|
3335
3385
|
NotFoundError,
|
|
@@ -3419,6 +3469,8 @@ export {
|
|
|
3419
3469
|
useIndexLinks,
|
|
3420
3470
|
useInstallPlugin,
|
|
3421
3471
|
useInstalledPlugins,
|
|
3472
|
+
useInvalidateAllCaches,
|
|
3473
|
+
useInvalidateSearchIndices,
|
|
3422
3474
|
useJsonResource,
|
|
3423
3475
|
useLegacyContext,
|
|
3424
3476
|
useLocalStorage,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scm-manager/ui-api",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.48.0",
|
|
4
4
|
"description": "React hook api for the SCM-Manager backend",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"module": "build/index.mjs",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"tsup": "^5.12.6"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@scm-manager/ui-types": "2.
|
|
32
|
+
"@scm-manager/ui-types": "2.48.0",
|
|
33
33
|
"fetch-mock-jest": "^1.5.1",
|
|
34
34
|
"gitdiff-parser": "^0.2.2",
|
|
35
35
|
"query-string": "6.14.1",
|