Skip to content

Commit

Permalink
fix: BreadcrumbItem should use makeResetStyles for base styles (micro…
Browse files Browse the repository at this point in the history
…soft#29278)

* Added makeResetStyles and disableFocusable prop

* change files
  • Loading branch information
ValentinaKozlova committed Sep 25, 2023
1 parent aef09fc commit 5b6536c
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 18 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"type": "patch",
"comment": "fix: used makeResetStyles instead of makeStyles",
"packageName": "@fluentui/react-breadcrumb-preview",
"email": "vkozlova@microsoft.com",
"dependentChangeType": "patch"
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ export const BreadcrumbButton: ForwardRefComponent<BreadcrumbButtonProps>;
export const breadcrumbButtonClassNames: SlotClassNames<BreadcrumbButtonSlots>;

// @public
export type BreadcrumbButtonProps = ComponentProps<BreadcrumbButtonSlots> & Pick<BreadcrumbProps, 'appearance' | 'size'> & Pick<ButtonProps, 'disabled'> & {
export type BreadcrumbButtonProps = ComponentProps<BreadcrumbButtonSlots> & Pick<BreadcrumbProps, 'appearance' | 'size'> & Pick<ButtonProps, 'disabled' | 'disabledFocusable'> & {
current?: boolean;
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export type BreadcrumbButtonSlots = ButtonSlots;
*/
export type BreadcrumbButtonProps = ComponentProps<BreadcrumbButtonSlots> &
Pick<BreadcrumbProps, 'appearance' | 'size'> &
Pick<ButtonProps, 'disabled'> & {
Pick<ButtonProps, 'disabled' | 'disabledFocusable'> & {
/**
* Defines current sate of BreadcrumbButton.
*
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { makeStyles, mergeClasses, shorthands } from '@griffel/react';
import { makeStyles, makeResetStyles, mergeClasses, shorthands } from '@griffel/react';
import type { BreadcrumbItemSlots, BreadcrumbItemState } from './BreadcrumbItem.types';
import type { SlotClassNames } from '@fluentui/react-utilities';
import { tokens, typographyStyles } from '@fluentui/react-theme';
Expand All @@ -9,17 +9,23 @@ export const breadcrumbItemClassNames: SlotClassNames<BreadcrumbItemSlots> = {
icon: 'fui-BreadcrumbItem__icon',
};

const useBreadcrumbItemResetStyles = makeResetStyles({
display: 'flex',
alignItems: 'center',
color: tokens.colorNeutralForeground2,
boxSizing: 'border-box',
textWrap: 'nowrap',

// Styles for the medium (default) size
height: '32px',
...shorthands.padding(tokens.spacingHorizontalSNudge),
...typographyStyles.body1,
});

/**
* Styles for the root slot
*/
const useStyles = makeStyles({
root: {
display: 'flex',
alignItems: 'center',
color: tokens.colorNeutralForeground2,
boxSizing: 'border-box',
textWrap: 'nowrap',
},
icon: {
display: 'inline-flex',
alignItems: 'center',
Expand All @@ -31,11 +37,6 @@ const useStyles = makeStyles({
...shorthands.padding(tokens.spacingHorizontalSNudge),
...typographyStyles.caption1,
},
medium: {
height: '32px',
...shorthands.padding(tokens.spacingHorizontalSNudge),
...typographyStyles.body1,
},
large: {
height: '40px',
...shorthands.padding(tokens.spacingHorizontalS),
Expand All @@ -59,21 +60,27 @@ const useStyles = makeStyles({
* Apply styling to the BreadcrumbItem slots based on the state
*/
export const useBreadcrumbItemStyles_unstable = (state: BreadcrumbItemState): BreadcrumbItemState => {
const resetStyles = useBreadcrumbItemResetStyles();
const styles = useStyles();
const iconStyles = useIconStyles();
const size = state.size || 'medium';
const sizeMap = {
small: styles.small,
medium: '', // Medium is the default. No need to apply any styles
large: styles.large,
} as const;
const currentSizeMap = {
small: styles.currentSmall,
medium: styles.currentMedium,
large: styles.currentLarge,
};
} as const;
const noSpacingStyle =
state.isInteractive || (!state.isInteractive && state.size === 'small') ? styles.noSpacing : '';

state.root.className = mergeClasses(
breadcrumbItemClassNames.root,
styles.root,
styles[size],
resetStyles,
sizeMap[size],
state.current && currentSizeMap[size],
noSpacingStyle,
state.root.className,
Expand Down

0 comments on commit 5b6536c

Please sign in to comment.