Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
Comment thread
dmytrokirpa marked this conversation as resolved.
"type": "patch",
"comment": "fix: drop unnecessary dependencies from base hooks",
"packageName": "@fluentui/react-avatar",
"email": "dmytrokirpa@microsoft.com",
"dependentChangeType": "patch"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"type": "patch",
"comment": "fix: update types for render function",
"packageName": "@fluentui/react-breadcrumb",
"email": "dmytrokirpa@microsoft.com",
"dependentChangeType": "patch"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"type": "patch",
"comment": "fix: update types for render function",
"packageName": "@fluentui/react-button",
"email": "dmytrokirpa@microsoft.com",
"dependentChangeType": "patch"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"type": "patch",
"comment": "fix: add missing base hook export",
"packageName": "@fluentui/react-field",
"email": "dmytrokirpa@microsoft.com",
"dependentChangeType": "patch"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"type": "patch",
"comment": "fix: drop unnecessary dependencies from base hooks",
"packageName": "@fluentui/react-progress",
"email": "dmytrokirpa@microsoft.com",
"dependentChangeType": "patch"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"type": "patch",
"comment": "fix: add mising base hook export",
"packageName": "@fluentui/react-rating",
"email": "dmytrokirpa@microsoft.com",
"dependentChangeType": "patch"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"type": "patch",
"comment": "fix: update types for render function",
"packageName": "@fluentui/react-skeleton",
"email": "dmytrokirpa@microsoft.com",
"dependentChangeType": "patch"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"type": "patch",
"comment": "fix: drop unnecessary dependencies from base hooks",
"packageName": "@fluentui/react-slider",
"email": "dmytrokirpa@microsoft.com",
"dependentChangeType": "patch"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"type": "patch",
"comment": "fix: drop unnecessary dependencies from base hooks",
"packageName": "@fluentui/react-spinner",
"email": "dmytrokirpa@microsoft.com",
"dependentChangeType": "patch"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"type": "patch",
"comment": "fix: update Switch component to conditionally render CircleFilled in indicator",
"packageName": "@fluentui/react-switch",
"email": "dmytrokirpa@microsoft.com",
"dependentChangeType": "patch"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"type": "patch",
"comment": "fix: update types for render function",
"packageName": "@fluentui/react-textarea",
"email": "dmytrokirpa@microsoft.com",
"dependentChangeType": "patch"
}
Original file line number Diff line number Diff line change
Expand Up @@ -103,11 +103,11 @@ export const useAvatarGroupPopoverBase_unstable = (props: AvatarGroupPopoverBase
popoverOpen,

components: {
root: Popover,
root: 'div',
Comment thread
dmytrokirpa marked this conversation as resolved.
triggerButton: 'button',
content: 'ul',
popoverSurface: PopoverSurface,
tooltip: Tooltip,
popoverSurface: 'div',
tooltip: 'div',
},
root: slot.always(
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -139,16 +139,16 @@ export type PartitionBreadcrumbItemsOptions<T> = {
};

// @public
export const renderBreadcrumb_unstable: (state: BreadcrumbState, contextValues: BreadcrumbContextValues) => JSXElement;
export const renderBreadcrumb_unstable: (state: BreadcrumbBaseState, contextValues: BreadcrumbContextValues) => JSXElement;

// @public
export const renderBreadcrumbButton_unstable: (state: BreadcrumbButtonState) => JSXElement;
export const renderBreadcrumbButton_unstable: (state: BreadcrumbButtonBaseState) => JSXElement;

// @public
export const renderBreadcrumbDivider_unstable: (state: BreadcrumbDividerState) => JSXElement;
export const renderBreadcrumbDivider_unstable: (state: BreadcrumbDividerBaseState) => JSXElement;

// @public
export const renderBreadcrumbItem_unstable: (state: BreadcrumbItemState) => JSXElement;
export const renderBreadcrumbItem_unstable: (state: BreadcrumbItemBaseState) => JSXElement;

// @public (undocumented)
export const truncateBreadcrumbLongName: (content: string, maxLength?: number) => string;
Expand Down Expand Up @@ -177,6 +177,9 @@ export const useBreadcrumbButtonStyles_unstable: (state: BreadcrumbButtonState)
// @internal (undocumented)
export const useBreadcrumbContext_unstable: () => BreadcrumbContextValues;

// @public (undocumented)
export function useBreadcrumbContextValues_unstable(state: BreadcrumbState): BreadcrumbContextValues;
Comment thread
dmytrokirpa marked this conversation as resolved.

// @public
export const useBreadcrumbDivider_unstable: (props: BreadcrumbDividerProps, ref: React_2.Ref<HTMLLIElement>) => BreadcrumbDividerState;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ export {
useBreadcrumbContext_unstable,
useBreadcrumbStyles_unstable,
useBreadcrumb_unstable,
useBreadcrumbContextValues_unstable,
useBreadcrumbBase_unstable,
useBreadcrumbA11yBehavior_unstable,
} from './components/Breadcrumb/index';
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,5 @@ export {
useBreadcrumbBase_unstable,
useBreadcrumbA11yBehavior_unstable,
} from './useBreadcrumb';
export { useBreadcrumbContextValues_unstable } from './useBreadcrumbContextValue';
export { breadcrumbClassNames, useBreadcrumbStyles_unstable } from './useBreadcrumbStyles.styles';
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@ import { assertSlots } from '@fluentui/react-utilities';
import type { JSXElement } from '@fluentui/react-utilities';

import { BreadcrumbProvider } from './BreadcrumbContext';
import type { BreadcrumbState, BreadcrumbSlots, BreadcrumbContextValues } from './Breadcrumb.types';
import type { BreadcrumbBaseState, BreadcrumbSlots, BreadcrumbContextValues } from './Breadcrumb.types';
/**
* Render the final JSX of Breadcrumb
*/
export const renderBreadcrumb_unstable = (
state: BreadcrumbState,
state: BreadcrumbBaseState,
contextValues: BreadcrumbContextValues,
): JSXElement => {
assertSlots<BreadcrumbSlots>(state);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import type { BreadcrumbButtonState } from './BreadcrumbButton.types';
import type { BreadcrumbButtonBaseState } from './BreadcrumbButton.types';
import type { JSXElement } from '@fluentui/react-utilities';

import { renderButton_unstable } from '@fluentui/react-button';

/**
* Render the final JSX of BreadcrumbButton
*/
export const renderBreadcrumbButton_unstable = (state: BreadcrumbButtonState): JSXElement => {
export const renderBreadcrumbButton_unstable = (state: BreadcrumbButtonBaseState): JSXElement => {
return renderButton_unstable(state);
};
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@
import { assertSlots } from '@fluentui/react-utilities';
import type { JSXElement } from '@fluentui/react-utilities';

import type { BreadcrumbDividerState, BreadcrumbDividerSlots } from './BreadcrumbDivider.types';
import type { BreadcrumbDividerBaseState, BreadcrumbDividerSlots } from './BreadcrumbDivider.types';

/**
* Render the final JSX of BreadcrumbDivider
*/
export const renderBreadcrumbDivider_unstable = (state: BreadcrumbDividerState): JSXElement => {
export const renderBreadcrumbDivider_unstable = (state: BreadcrumbDividerBaseState): JSXElement => {
assertSlots<BreadcrumbDividerSlots>(state);

return <state.root />;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@
import { assertSlots } from '@fluentui/react-utilities';
import type { JSXElement } from '@fluentui/react-utilities';

import type { BreadcrumbItemState, BreadcrumbItemSlots } from './BreadcrumbItem.types';
import type { BreadcrumbItemBaseState, BreadcrumbItemSlots } from './BreadcrumbItem.types';

/**
* Render the final JSX of BreadcrumbItem
*/
export const renderBreadcrumbItem_unstable = (state: BreadcrumbItemState): JSXElement => {
export const renderBreadcrumbItem_unstable = (state: BreadcrumbItemBaseState): JSXElement => {
assertSlots<BreadcrumbItemSlots>(state);

return <state.root>{state.root.children}</state.root>;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ export {
useBreadcrumbBase_unstable,
useBreadcrumbA11yBehavior_unstable,
useBreadcrumbStyles_unstable,
useBreadcrumbContextValues_unstable,
breadcrumbClassNames,
} from './Breadcrumb';
export type {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ export type MenuButtonSlots = ButtonSlots & {
export type MenuButtonState = ComponentState<MenuButtonSlots> & Omit<ButtonState, keyof ButtonSlots | 'components' | 'iconPosition'>;

// @public
const renderButton_unstable: (state: ButtonState) => JSXElement;
const renderButton_unstable: (state: ButtonBaseState) => JSXElement;
export { renderButton_unstable }
export { renderButton_unstable as renderToggleButton_unstable }

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@
import { assertSlots } from '@fluentui/react-utilities';
import type { JSXElement } from '@fluentui/react-utilities';

import type { ButtonSlots, ButtonState } from './Button.types';
import type { ButtonSlots, ButtonBaseState } from './Button.types';

/**
* Renders a Button component by passing the state defined props to the appropriate slots.
*/
export const renderButton_unstable = (state: ButtonState): JSXElement => {
export const renderButton_unstable = (state: ButtonBaseState): JSXElement => {
assertSlots<ButtonSlots>(state);
const { iconOnly, iconPosition } = state;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

import type { ComponentProps } from '@fluentui/react-utilities';
import type { ComponentState } from '@fluentui/react-utilities';
import type { DistributiveOmit } from '@fluentui/react-utilities';
import type { ForwardRefComponent } from '@fluentui/react-utilities';
import type { JSXElement } from '@fluentui/react-utilities';
import { Label } from '@fluentui/react-label';
Expand All @@ -16,6 +17,12 @@ import type { SlotClassNames } from '@fluentui/react-utilities';
// @public (undocumented)
export const Field: ForwardRefComponent<FieldProps>;

// @public (undocumented)
export type FieldBaseProps = DistributiveOmit<FieldProps, 'orientation' | 'size'>;

// @public (undocumented)
export type FieldBaseState = DistributiveOmit<FieldState, 'orientation' | 'size'>;

// @public (undocumented)
export const fieldClassNames: SlotClassNames<FieldSlots>;

Expand Down Expand Up @@ -74,11 +81,14 @@ export type FieldState = ComponentState<Required<FieldSlots>> & Required<Pick<Fi
};

// @public
export const renderField_unstable: (state: FieldState, contextValues: FieldContextValues) => JSXElement;
export const renderField_unstable: (state: FieldBaseState, contextValues: FieldContextValues) => JSXElement;

// @public
export const useField_unstable: (props: FieldProps, ref: React_2.Ref<HTMLDivElement>) => FieldState;

// @public
export const useFieldBase_unstable: (props: FieldBaseProps, ref: React_2.Ref<HTMLDivElement>) => FieldBaseState;

// @public (undocumented)
export const useFieldContext_unstable: () => FieldContextValue | undefined;

Expand Down
3 changes: 3 additions & 0 deletions packages/react-components/react-field/library/src/Field.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,14 @@ export type {
FieldProps,
FieldSlots,
FieldState,
FieldBaseProps,
FieldBaseState,
} from './components/Field/index';
export {
Field,
fieldClassNames,
renderField_unstable,
useFieldStyles_unstable,
useField_unstable,
useFieldBase_unstable,
} from './components/Field/index';
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,6 @@ export type {
} from './Field.types';
export { Field } from './Field';
export { renderField_unstable } from './renderField';
export { useField_unstable, useFieldBase_unstable } from './useField';
export { useField_unstable } from './useField';
export { useFieldBase_unstable } from './useFieldBase';
export { fieldClassNames, useFieldStyles_unstable } from './useFieldStyles.styles';
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@
import { assertSlots } from '@fluentui/react-utilities';
import type { JSXElement } from '@fluentui/react-utilities';
import { FieldContextProvider, getFieldControlProps } from '../../contexts/index';
import type { FieldContextValues, FieldSlots, FieldState } from './Field.types';
import type { FieldContextValues, FieldSlots, FieldBaseState } from './Field.types';

/**
* Render the final JSX of Field
*/
export const renderField_unstable = (state: FieldState, contextValues: FieldContextValues): JSXElement => {
export const renderField_unstable = (state: FieldBaseState, contextValues: FieldContextValues): JSXElement => {
assertSlots<FieldSlots>(state);

let { children } = state;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import { renderHook } from '@testing-library/react-hooks';
import { useField_unstable, useFieldBase_unstable } from './useField';
import { useField_unstable } from './useField';

describe('useField_unstable', () => {
const ref = React.createRef<HTMLDivElement>();
Expand Down Expand Up @@ -43,47 +43,3 @@ describe('useField_unstable', () => {
});
});
});

Comment thread
dmytrokirpa marked this conversation as resolved.
describe('useFieldBase_unstable', () => {
const ref = React.createRef<HTMLDivElement>();

it('should return default state when no props are provided', () => {
const { result } = renderHook(() => useFieldBase_unstable({}, ref));

expect(result.current).toMatchObject({
children: undefined,
components: {
// Plain HTML element is expected here, as base hook shouldn't know about the "styled" components
label: 'label',
},
validationMessage: undefined,
validationMessageIcon: undefined,
validationState: 'none',
});
});

it('should return default state when props are provided', () => {
const { result } = renderHook(() =>
useFieldBase_unstable(
{
label: 'Test Label',
validationMessage: 'Test Validation Message',
validationMessageIcon: 'Test Icon',
validationState: 'error',
},
ref,
),
);

expect(result.current).toMatchObject({
children: undefined,
components: {
// Plain HTML element is expected here, as base hook shouldn't know about the "styled" components
label: 'label',
},
validationMessage: expect.objectContaining({ children: 'Test Validation Message' }),
validationMessageIcon: expect.objectContaining({ children: 'Test Icon' }),
validationState: 'error',
});
});
});
Loading
Loading