Skip to content

Commit

Permalink
feat(admin-ui): Add useRouteParams react hook
Browse files Browse the repository at this point in the history
  • Loading branch information
michaelbromley committed Sep 13, 2023
1 parent 7c1454d commit b63fb7f
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 0 deletions.
1 change: 1 addition & 0 deletions packages/admin-ui/src/lib/react/src/public_api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ export * from './react-hooks/use-form-control';
export * from './react-hooks/use-injector';
export * from './react-hooks/use-page-metadata';
export * from './react-hooks/use-query';
export * from './react-hooks/use-route-params';
export * from './register-react-custom-detail-component';
export * from './register-react-data-table-component';
export * from './register-react-form-input-component';
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import { ActivatedRoute } from '@angular/router';
import { useEffect, useState } from 'react';
import { useInjector } from './use-injector';

/**
* @description
* Provides access to the current route params and query params.
*
* @example
* ```ts
* import { useRouteParams } from '\@vendure/admin-ui/react';
* import React from 'react';
*
* export function MyComponent() {
* const { params, queryParams } = useRouteParams();
* // ...
* return <div>{ params.id }</div>;
* }
* ```
*
* @docsCategory react-hooks
*/
export function useRouteParams() {
const activatedRoute = useInjector(ActivatedRoute);
const [params, setParams] = useState(activatedRoute.snapshot.params);
const [queryParams, setQueryParams] = useState(activatedRoute.snapshot.queryParams);

useEffect(() => {
const subscription = activatedRoute.params.subscribe(value => {
setParams(value);
});
subscription.add(activatedRoute.queryParams.subscribe(value => setQueryParams(value)));
return () => subscription.unsubscribe();
}, []);

activatedRoute;

return {
params,
queryParams,
};
}

0 comments on commit b63fb7f

Please sign in to comment.