Skip to content

Commit b5b1679

Browse files
committed
expose base hook and types
1 parent b1dadb8 commit b5b1679

5 files changed

Lines changed: 18 additions & 12 deletions

File tree

packages/react-components/react-spinner/library/etc/react-spinner.api.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,17 @@ import type { Slot } from '@fluentui/react-utilities';
1414
import type { SlotClassNames } from '@fluentui/react-utilities';
1515

1616
// @public
17-
export const renderSpinner_unstable: (state: SpinnerState) => JSXElement;
17+
export const renderSpinner_unstable: (state: SpinnerBaseState) => JSXElement;
1818

1919
// @public
2020
export const Spinner: ForwardRefComponent<SpinnerProps>;
2121

22+
// @public
23+
export type SpinnerBaseProps = Omit<SpinnerProps, 'appearance' | 'size'>;
24+
25+
// @public
26+
export type SpinnerBaseState = Omit<SpinnerState, 'appearance' | 'size'>;
27+
2228
// @public (undocumented)
2329
export const spinnerClassNames: SlotClassNames<SpinnerSlots>;
2430

@@ -52,6 +58,9 @@ export type SpinnerState = ComponentState<SpinnerSlots> & Required<Pick<SpinnerP
5258
// @public
5359
export const useSpinner_unstable: (props: SpinnerProps, ref: React_2.Ref<HTMLElement>) => SpinnerState;
5460

61+
// @public
62+
export const useSpinnerBase_unstable: (props: SpinnerBaseProps, ref: React_2.Ref<HTMLElement>) => SpinnerBaseState;
63+
5564
// @internal (undocumented)
5665
export const useSpinnerContext: () => SpinnerContextValue;
5766

packages/react-components/react-spinner/library/src/components/Spinner/Spinner.types.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { ComponentProps, ComponentState, DistributiveOmit, Slot } from '@fluentui/react-utilities';
1+
import type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';
22
import { Label } from '@fluentui/react-label';
33

44
export type SpinnerSlots = {
@@ -56,7 +56,7 @@ export type SpinnerProps = Omit<ComponentProps<SpinnerSlots>, 'size'> & {
5656
/**
5757
* Spinner base props, excluding design-related props like appearance and size.
5858
*/
59-
export type SpinnerBaseProps = DistributiveOmit<SpinnerProps, 'appearance' | 'size'>;
59+
export type SpinnerBaseProps = Omit<SpinnerProps, 'appearance' | 'size'>;
6060

6161
/**
6262
* State used in rendering Spinner
@@ -72,4 +72,4 @@ export type SpinnerState = ComponentState<SpinnerSlots> &
7272
/**
7373
* Spinner base state, excluding design-related state like appearance and size.
7474
*/
75-
export type SpinnerBaseState = DistributiveOmit<SpinnerState, 'appearance' | 'size'>;
75+
export type SpinnerBaseState = Omit<SpinnerState, 'appearance' | 'size'>;

packages/react-components/react-spinner/library/src/components/Spinner/renderSpinner.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33

44
import { assertSlots } from '@fluentui/react-utilities';
55
import type { JSXElement } from '@fluentui/react-utilities';
6-
import type { SpinnerState, SpinnerSlots } from './Spinner.types';
6+
import type { SpinnerBaseState, SpinnerSlots } from './Spinner.types';
77

88
/**
99
* Render the final JSX of Spinner
1010
*/
11-
export const renderSpinner_unstable = (state: SpinnerState): JSXElement => {
11+
export const renderSpinner_unstable = (state: SpinnerBaseState): JSXElement => {
1212
assertSlots<SpinnerSlots>(state);
1313
const { labelPosition, shouldRenderSpinner } = state;
1414
return (

packages/react-components/react-spinner/library/src/components/Spinner/useSpinner.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ export const useSpinner_unstable = (props: SpinnerProps, ref: React.Ref<HTMLElem
3535
* @param props - User provided props to the Spinner component.
3636
* @param ref - User provided ref to be passed to the Spinner component.
3737
*/
38-
export const useSpinnerBase_unstable = (props: SpinnerBaseProps, ref?: React.Ref<HTMLElement>): SpinnerBaseState => {
38+
export const useSpinnerBase_unstable = (props: SpinnerBaseProps, ref: React.Ref<HTMLElement>): SpinnerBaseState => {
3939
const { delay = 0, labelPosition = 'after' } = props;
4040
const baseId = useId('spinner');
4141

packages/react-components/react-spinner/library/src/index.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,8 @@ export {
44
renderSpinner_unstable,
55
useSpinner_unstable,
66
useSpinnerStyles_unstable,
7+
useSpinnerBase_unstable,
78
} from './Spinner';
8-
export type { SpinnerProps, SpinnerSlots, SpinnerState } from './Spinner';
9+
export type { SpinnerProps, SpinnerSlots, SpinnerState, SpinnerBaseProps, SpinnerBaseState } from './Spinner';
910
export { SpinnerContextProvider, useSpinnerContext } from './contexts/index';
1011
export type { SpinnerContextValue } from './contexts/index';
11-
12-
// Experimental APIs - will be uncommented in the experimental release branch
13-
// export { useSpinnerBase_unstable } from './Spinner';
14-
// export type { SpinnerBaseProps, SpinnerBaseState } from './Spinner';

0 commit comments

Comments
 (0)