Skip to content
Merged
Show file tree
Hide file tree
Changes from 16 commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
4ee8245
Add video effects items as ui components with story
JamesBurnside Mar 1, 2023
cf3a51b
update styles being applied
JamesBurnside Mar 1, 2023
1eb3c47
update api files
JamesBurnside Mar 1, 2023
d144bd3
Change files
JamesBurnside Mar 1, 2023
329ed8d
Duplicate change files for beta release
JamesBurnside Mar 1, 2023
bcf03ee
add keys
JamesBurnside Mar 1, 2023
0f8eb9e
Add background picker component
JamesBurnside Mar 1, 2023
b404553
Change files
JamesBurnside Mar 1, 2023
200600c
Duplicate change files for beta release
JamesBurnside Mar 1, 2023
f8ca7aa
remove unused import
JamesBurnside Mar 2, 2023
626ed53
Merge branch 'main' into jaburnsi/background-video-effects-option
dmceachernmsft Mar 2, 2023
442935f
update with PR comments
JamesBurnside Mar 2, 2023
5b40a79
Add controlled component warning
JamesBurnside Mar 3, 2023
439b971
update api files
JamesBurnside Mar 3, 2023
21df880
Merge remote-tracking branch 'origin/jaburnsi/background-video-effect…
JamesBurnside Mar 3, 2023
b1376b1
update snippet imports
JamesBurnside Mar 3, 2023
fe20d40
remove confusing props
JamesBurnside Mar 7, 2023
5e22ac2
remove confusing props
JamesBurnside Mar 7, 2023
b06d8d2
Merge remote-tracking branch 'origin/main' into jaburnsi/background-v…
JamesBurnside Mar 7, 2023
7c6d15f
Merge remote-tracking branch 'origin/jaburnsi/background-video-effect…
JamesBurnside Mar 7, 2023
544838d
Merge remote-tracking branch 'origin/main' into jaburnsi/video-backgr…
JamesBurnside Mar 7, 2023
5ac9ba2
update beta api
JamesBurnside Mar 7, 2023
b2ab508
Merge branch 'main' into jaburnsi/video-background-effects-picker
JamesBurnside Mar 10, 2023
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 @@
{
"type": "prerelease",
"comment": "Add Video background effects picker component",
"packageName": "@azure/communication-react",
"email": "2684369+JamesBurnside@users.noreply.github.com",
"dependentChangeType": "patch"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"type": "prerelease",
"comment": "Add video background effect choice items for upcoming background picker",
"packageName": "@azure/communication-react",
"email": "2684369+JamesBurnside@users.noreply.github.com",
"dependentChangeType": "patch"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"type": "prerelease",
"comment": "Add Video background effects picker component",
"packageName": "@azure/communication-react",
"email": "2684369+JamesBurnside@users.noreply.github.com",
"dependentChangeType": "patch"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"type": "prerelease",
"comment": "Add video background effect choice items for upcoming background picker",
"packageName": "@azure/communication-react",
"email": "2684369+JamesBurnside@users.noreply.github.com",
"dependentChangeType": "patch"
}
62 changes: 62 additions & 0 deletions packages/react-components/review/beta/react-components.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import { IRenderFunction } from '@fluentui/react';
import { IStyle } from '@fluentui/react';
import { IStyleFunctionOrObject } from '@fluentui/react';
import { ITextFieldStyles } from '@fluentui/react';
import { ITooltipHostProps } from '@fluentui/react';
import { MessageStatus } from '@internal/acs-ui-common';
import { PartialTheme } from '@fluentui/react';
import { PersonaPresence } from '@fluentui/react';
Expand Down Expand Up @@ -1652,6 +1653,67 @@ export const _usePermissions: () => _Permissions;
// @public
export const useTheme: () => Theme;

// @internal
export type _VideoBackgroundEffectChoiceOption = _VideoEffectsItemProps;

// @internal
export const _VideoBackgroundEffectsPicker: (props: _VideoBackgroundEffectsPickerProps) => JSX.Element;

// @internal
export interface _VideoBackgroundEffectsPickerProps {
defaultSelectedEffectKey?: string;
itemsPerRow?: 'wrap' | number;
label?: string;
onChange?: (effectKey: string) => void;
options: _VideoBackgroundEffectChoiceOption[];
selectedEffectKey?: string;
styles?: _VideoBackgroundEffectsPickerStyles;
}

// @internal
export interface _VideoBackgroundEffectsPickerStyles {
label?: IStyle;
root?: IStyle;
rowRoot?: IStyle;
}

// @internal
export const _VideoEffectsItem: (props: _VideoEffectsItemProps) => JSX.Element;

// @internal
export const _VideoEffectsItemAddImage: (props: _VideoEffectsItemProps) => JSX.Element;

// @internal
export const _VideoEffectsItemBlur: (props: _VideoEffectsItemProps) => JSX.Element;

// @internal
export const _VideoEffectsItemNoBackground: (props: _VideoEffectsItemProps) => JSX.Element;

// @internal
export interface _VideoEffectsItemProps {
ariaLabel?: string;
backgroundProps?: {
url: string;
position?: string;
size?: string;
};
disabled?: boolean;
iconProps?: IIconProps;
isSelected?: boolean;
key: string;
onSelect?: (key: string) => void;
styles?: _VideoEffectsItemStyles;
title?: string;
tooltipProps?: ITooltipHostProps;
}

// @internal
export interface _VideoEffectsItemStyles {
iconContainer: IStyle;
root: IStyle;
textContainer: IStyle;
}

// @public
export const VideoGallery: (props: VideoGalleryProps) => JSX.Element;

Expand Down
62 changes: 62 additions & 0 deletions packages/react-components/review/stable/react-components.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import { IRenderFunction } from '@fluentui/react';
import { IStyle } from '@fluentui/react';
import { IStyleFunctionOrObject } from '@fluentui/react';
import { ITextFieldStyles } from '@fluentui/react';
import { ITooltipHostProps } from '@fluentui/react';
import { MessageStatus } from '@internal/acs-ui-common';
import { PartialTheme } from '@fluentui/react';
import { PersonaPresence } from '@fluentui/react';
Expand Down Expand Up @@ -1398,6 +1399,67 @@ export const _useContainerWidth: (containerRef: RefObject<HTMLElement>) => numbe
// @public
export const useTheme: () => Theme;

// @internal
export type _VideoBackgroundEffectChoiceOption = _VideoEffectsItemProps;

// @internal
export const _VideoBackgroundEffectsPicker: (props: _VideoBackgroundEffectsPickerProps) => JSX.Element;

// @internal
export interface _VideoBackgroundEffectsPickerProps {
defaultSelectedEffectKey?: string;
itemsPerRow?: 'wrap' | number;
label?: string;
onChange?: (effectKey: string) => void;
options: _VideoBackgroundEffectChoiceOption[];
selectedEffectKey?: string;
styles?: _VideoBackgroundEffectsPickerStyles;
}

// @internal
export interface _VideoBackgroundEffectsPickerStyles {
label?: IStyle;
root?: IStyle;
rowRoot?: IStyle;
}

// @internal
export const _VideoEffectsItem: (props: _VideoEffectsItemProps) => JSX.Element;

// @internal
export const _VideoEffectsItemAddImage: (props: _VideoEffectsItemProps) => JSX.Element;

// @internal
export const _VideoEffectsItemBlur: (props: _VideoEffectsItemProps) => JSX.Element;

// @internal
export const _VideoEffectsItemNoBackground: (props: _VideoEffectsItemProps) => JSX.Element;

// @internal
export interface _VideoEffectsItemProps {
ariaLabel?: string;
backgroundProps?: {
url: string;
position?: string;
size?: string;
};
disabled?: boolean;
iconProps?: IIconProps;
isSelected?: boolean;
key: string;
onSelect?: (key: string) => void;
styles?: _VideoEffectsItemStyles;
title?: string;
tooltipProps?: ITooltipHostProps;
}

// @internal
export interface _VideoEffectsItemStyles {
iconContainer: IStyle;
root: IStyle;
textContainer: IStyle;
}

// @public
export const VideoGallery: (props: VideoGalleryProps) => JSX.Element;

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.

import React from 'react';
import { _VideoEffectsItem, _VideoEffectsItemProps } from './VideoEffectsItem';

/**
* 'None' Video Effects Item.
*
* @internal
*/
export const _VideoEffectsItemNoBackground = (props: _VideoEffectsItemProps): JSX.Element => {
const derivedProps = deriveProps(props, {
iconName: 'VideoEffectsNone',
title: 'None',
tooltipContent: 'Remove Background',
ariaLabel: 'Remove Background'
});

return <_VideoEffectsItem {...derivedProps} />;
};

/**
* 'Blur' Video Effects Item.
*
* @internal
*/
export const _VideoEffectsItemBlur = (props: _VideoEffectsItemProps): JSX.Element => {
const derivedProps = deriveProps(props, {
iconName: 'VideoEffectsBlur',
title: 'Blurred',
tooltipContent: 'Blur Background',
ariaLabel: 'Blur Background'
});

return <_VideoEffectsItem {...derivedProps} />;
};

/**
* 'Add Image' Video Effects Item.
*
* @internal
*/
export const _VideoEffectsItemAddImage = (props: _VideoEffectsItemProps): JSX.Element => {
const derivedProps = deriveProps(props, {
iconName: 'VideoEffectsAddImage',
title: 'Image',
tooltipContent: 'Upload Background Image',
ariaLabel: 'Upload Background Image'
});

return <_VideoEffectsItem {...derivedProps} />;
};

/** Applies fallbacks if props were not specified */
const deriveProps = (
props: _VideoEffectsItemProps,
fallbacks: {
iconName: string;
title: string;
tooltipContent: string;
ariaLabel: string;
}
): _VideoEffectsItemProps => {
const iconProps = props.iconProps ?? {
iconName: fallbacks.iconName
};
const title = props.title ?? fallbacks.title;
const tooltipProps = props.tooltipProps ?? {
content: props.title ?? fallbacks.tooltipContent
};
const ariaLabel =
props.ariaLabel ?? typeof props.tooltipProps?.content === 'string'
? typeof props.tooltipProps?.content
: props.title ?? fallbacks.ariaLabel;

return {
...props,
iconProps,
title,
tooltipProps,
ariaLabel
};
};
Loading