Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
d76623c
Convert scss to styles.ts (no classNames yet)
Feb 22, 2018
d9b291a
Merge branch 'master' into mergeStyles/Dialog-round2
Feb 26, 2018
f972e51
Use getStyles in base component.
Feb 27, 2018
1a397be
Add base component class names
Feb 27, 2018
7d19bfc
Make styles required.
Feb 27, 2018
f064341
Merge branch 'master' into mergeStyles/Dialog-round2
Feb 28, 2018
aeb08ac
Separate DialogContent styles and types
Mar 1, 2018
bfae0d8
Move DialogContent className logic to styles file.
Mar 1, 2018
8040803
Organize props
Mar 2, 2018
31b3042
Split DialogFooter styles and types
Mar 2, 2018
0ce1028
Comment and deprecate some props
Mar 2, 2018
98c4e55
Support isMultiline prop and clean up
Mar 2, 2018
3c4fb59
private _className method
Mar 2, 2018
1629127
npm run change output
Mar 2, 2018
70299f6
Update snapshot
Mar 2, 2018
e710070
Merge branch 'master' into mergeStyles/Dialog-round2
Mar 2, 2018
1110148
Simplify styles conditionals
Mar 2, 2018
6a5a186
Delete sass file
Mar 2, 2018
0264027
Add fallbacks for className checks.
Mar 2, 2018
7b010f7
Simplify stylesets with no styles
Mar 2, 2018
19ddc64
Move default width variables to style props.
Mar 2, 2018
da04eaa
better className fallbacks
Mar 2, 2018
23e506f
nit
Mar 2, 2018
f6bddf4
Fix font weight.
Mar 2, 2018
df40d50
merge master
Mar 5, 2018
caa8e30
Add className to footer and fix type issues.
Mar 5, 2018
5ad8158
Fix more type errors
Mar 5, 2018
9c6a1de
Merge branch 'master' into mergeStyles/Dialog-round2
Mar 8, 2018
2639ac2
Add hoistStatics function to @withResponsiveMode decorator
Mar 8, 2018
a0eb0d6
npm run change output
Mar 8, 2018
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,11 @@
{
"changes": [
{
"comment": "",
"packageName": "@uifabric/fabric-website",
"type": "none"
}
],
"packageName": "@uifabric/fabric-website",
"email": "v-jojanz@microsoft.com"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"changes": [
{
"packageName": "@uifabric/utilities",
"comment": "Add hoistStatics function to withResponsiveMode decorator.",
"type": "minor"
}
],
"packageName": "@uifabric/utilities",
"email": "v-jojanz@microsoft.com"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"changes": [
{
"packageName": "office-ui-fabric-react",
"comment": "Dialog: convert to mergeStyles part 2.",
"type": "minor"
}
],
"packageName": "office-ui-fabric-react",
"email": "v-jojanz@microsoft.com"
}
Original file line number Diff line number Diff line change
@@ -1,15 +1,20 @@
import * as React from 'react';
import {
BaseComponent,
css,
classNamesFunction,
customizable,
getId
} from '../../Utilities';
import { IDialogProps } from './Dialog.types';
import {
IDialogProps,
IDialogStyleProps,
IDialogStyles,
} from './Dialog.types';
import { DialogType, IDialogContentProps } from './DialogContent.types';
import { Modal, IModalProps } from '../../Modal';
import { withResponsiveMode } from '../../utilities/decorators/withResponsiveMode';
import * as stylesImport from './Dialog.scss';
const styles: any = stylesImport;

const getClassNames = classNamesFunction<IDialogStyleProps, IDialogStyles>();

import { DialogContent } from './DialogContent';

Expand All @@ -26,6 +31,7 @@ const DefaultDialogContentProps: IDialogContentProps = {
topButtonsProps: [],
};

@customizable('Dialog', ['theme'])
@withResponsiveMode
export class DialogBase extends BaseComponent<IDialogProps, {}> {
public static defaultProps: IDialogProps = {
Expand Down Expand Up @@ -62,26 +68,28 @@ export class DialogBase extends BaseComponent<IDialogProps, {}> {

public render() {
const {
className,
containerClassName,
contentClassName,
elementToFocusOnDismiss,
firstFocusableSelector,
forceFocusInsideTrap,
getStyles,
hidden,
ignoreExternalFocusing,
isBlocking,
isClickableOutsideFocusTrap,
isDarkOverlay,
isOpen,
className,
onDismiss,
onDismissed,
onLayerDidMount,
responsiveMode,
subText,
theme,
title,
type,
contentClassName,
topButtonsProps,
containerClassName,
hidden
type,
} = this.props;

const modalProps = {
Expand All @@ -91,9 +99,16 @@ export class DialogBase extends BaseComponent<IDialogProps, {}> {

const dialogContentProps: IDialogContentProps = {
...DefaultDialogContentProps,
...this.props.dialogContentProps
...this.props.dialogContentProps,
};

const classNames = getClassNames(getStyles!, {
theme: theme!,
className: className || modalProps!.className,
containerClassName: containerClassName || modalProps!.containerClassName,
hidden,
});

return (
<Modal
elementToFocusOnDismiss={ elementToFocusOnDismiss }
Expand All @@ -108,8 +123,8 @@ export class DialogBase extends BaseComponent<IDialogProps, {}> {
isDarkOverlay={ isDarkOverlay !== undefined ? isDarkOverlay : modalProps!.isDarkOverlay }
isBlocking={ isBlocking !== undefined ? isBlocking : modalProps!.isBlocking }
isOpen={ isOpen !== undefined ? isOpen : !hidden }
className={ css('ms-Dialog', className ? className : modalProps!.className) }
containerClassName={ css(styles.main, containerClassName ? containerClassName : modalProps!.containerClassName) }
className={ classNames.root }
containerClassName={ classNames.main }
onDismiss={ onDismiss ? onDismiss : modalProps!.onDismiss }
subtitleAriaId={ this._getSubTextId() }
titleAriaId={ this._getTitleTextId() }
Expand All @@ -123,7 +138,7 @@ export class DialogBase extends BaseComponent<IDialogProps, {}> {
topButtonsProps={ topButtonsProps ? topButtonsProps : dialogContentProps!.topButtonsProps }
type={ type !== undefined ? type : dialogContentProps!.type }
onDismiss={ onDismiss ? onDismiss : dialogContentProps!.onDismiss }
className={ css(contentClassName ? contentClassName : dialogContentProps!.className) }
className={ contentClassName || dialogContentProps!.className }
{ ...dialogContentProps }
>
{ this.props.children }
Expand Down
150 changes: 0 additions & 150 deletions packages/office-ui-fabric-react/src/components/Dialog/Dialog.scss

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,17 +1,39 @@
import { IDialogStyleProps, IDialogStyles } from './Dialog.types';
import {
ScreenWidthMinMedium,
} from '../../Styling';

export const getStyles = (
props: IDialogStyleProps
): IDialogStyles => {
const {
className,
containerClassName,
dialogDefaultMinWidth = '288px',
dialogDefaultMaxWidth = '340px',
hidden,
} = props;

return ({
root: [
'ms-Dialog',
{
// Insert css properties
}
className,
],

// Insert className styles
main: [
{
width: dialogDefaultMinWidth,

selectors: {
[`@media (min-width: ${ScreenWidthMinMedium}px)`]: {
width: 'auto',
maxWidth: dialogDefaultMaxWidth,
minWidth: dialogDefaultMinWidth,
}
}
},
!hidden && { display: 'flex' },
containerClassName,
]
});
};
Original file line number Diff line number Diff line change
Expand Up @@ -157,14 +157,41 @@ export interface IDialogStyleProps {
*/
className?: string;

// Insert Dialog style props below
/**
* Optional override for container class
* @deprecated Pass through via modalProps.className instead
*/
containerClassName?: string;

/**
* Optional override content class
* @deprecated Pass through via dialogContentProps instead as className
*/
contentClassName?: string;

/**
* Whether the dialog is hidden.
* @default false
*/
hidden?: boolean;

/**
* Default min-width for the dialog box.
* @defaultvalue '288px'
*/
dialogDefaultMinWidth?: string;

/**
* Default max-width for the dialog box.
* @defaultvalue '340px'
*/
dialogDefaultMaxWidth?: string;
}

export interface IDialogStyles {
/**
* Style for the root element.
*/
root: IStyle;

// Insert Dialog classNames below
main: IStyle;
}
Loading