Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RNMobile] Native mobile release v1.14.0 #17676

Merged
merged 8 commits into from
Oct 8, 2019
5 changes: 3 additions & 2 deletions packages/block-library/src/heading/heading-level-icon.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
*/
import { Path, SVG } from '@wordpress/components';

export default function HeadingLevelIcon( { level } ) {
export default function HeadingLevelIcon( { level, __unstableActive } ) {

const levelToPath = {
1: 'M9 5h2v10H9v-4H5v4H3V5h2v4h4V5zm6.6 0c-.6.9-1.5 1.7-2.6 2v1h2v7h2V5h-1.4z',
2: 'M7 5h2v10H7v-4H3v4H1V5h2v4h4V5zm8 8c.5-.4.6-.6 1.1-1.1.4-.4.8-.8 1.2-1.3.3-.4.6-.8.9-1.3.2-.4.3-.8.3-1.3 0-.4-.1-.9-.3-1.3-.2-.4-.4-.7-.8-1-.3-.3-.7-.5-1.2-.6-.5-.2-1-.2-1.5-.2-.4 0-.7 0-1.1.1-.3.1-.7.2-1 .3-.3.1-.6.3-.9.5-.3.2-.6.4-.8.7l1.2 1.2c.3-.3.6-.5 1-.7.4-.2.7-.3 1.2-.3s.9.1 1.3.4c.3.3.5.7.5 1.1 0 .4-.1.8-.4 1.1-.3.5-.6.9-1 1.2-.4.4-1 .9-1.6 1.4-.6.5-1.4 1.1-2.2 1.6V15h8v-2H15z',
Expand All @@ -17,7 +18,7 @@ export default function HeadingLevelIcon( { level } ) {
}

return (
<SVG width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
<SVG width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" __unstableActive={ __unstableActive } >
<Path d={ levelToPath[ level ] } />
</SVG>
);
Expand Down
5 changes: 3 additions & 2 deletions packages/block-library/src/heading/heading-toolbar.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,12 @@ import HeadingLevelIcon from './heading-level-icon';

class HeadingToolbar extends Component {
createLevelControl( targetLevel, selectedLevel, onChange ) {
const isActive = targetLevel === selectedLevel;
return {
icon: <HeadingLevelIcon level={ targetLevel } />,
icon: <HeadingLevelIcon level={ targetLevel } __unstableActive={ isActive }/>,
// translators: %s: heading level e.g: "1", "2", "3"
title: sprintf( __( 'Heading %d' ), targetLevel ),
isActive: targetLevel === selectedLevel,
isActive,
onClick: () => onChange( targetLevel ),
};
}
Expand Down
2 changes: 1 addition & 1 deletion packages/components/src/primitives/svg/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,5 @@ export const SVG = ( props ) => {

// Disable reason: We need to have a way to render HTML tag for web.
// eslint-disable-next-line react/forbid-elements
return <svg { ...appliedProps } />;
return <svg { ...omit( appliedProps, '__unstableActive' ) } />;
};
4 changes: 2 additions & 2 deletions packages/components/src/primitives/svg/index.native.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ export {

export const SVG = ( props ) => {
const stylesFromClasses = ( props.className || '' ).split( ' ' ).map( ( element ) => styles[ element ] ).filter( Boolean );
const stylesFromAriaPressed = props.ariaPressed ? styles[ 'is-active' ] : styles[ 'components-toolbar__control' ];
const styleValues = Object.assign( {}, props.style, stylesFromAriaPressed, ...stylesFromClasses );
const defaultStyle = props.__unstableActive ? styles[ 'is-active' ] : styles[ 'components-toolbar__control' ];
const styleValues = Object.assign( {}, props.style, defaultStyle, ...stylesFromClasses );

const safeProps = { ...props, style: styleValues };

Expand Down
9 changes: 8 additions & 1 deletion packages/format-library/src/link/index.native.js
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,14 @@ export const link = {
}

onRemoveFormat() {
const { onChange, speak } = this.props;
const { onChange, speak, value } = this.props;
const startFormat = getActiveFormat( value, 'core/link' );

// Before we try to remove anything we check if there is something at the caret position to remove.
if ( isCollapsed( value ) && startFormat === undefined ) {
return;
}

const linkSelection = this.getLinkSelection();

onChange( removeFormat( linkSelection, name ) );
Expand Down
18 changes: 12 additions & 6 deletions packages/rich-text/src/component/index.native.js
Original file line number Diff line number Diff line change
Expand Up @@ -440,7 +440,7 @@ export class RichText extends Component {
/**
* Handles a paste event from the native Aztec Wrapper.
*
* @param {PasteEvent} event The paste event which wraps `nativeEvent`.
* @param {Object} event The paste event which wraps `nativeEvent`.
*/
onPaste( event ) {
const {
Expand Down Expand Up @@ -753,13 +753,19 @@ export class RichText extends Component {

getHtmlToRender( record, tagName ) {
// Save back to HTML from React tree
const value = this.valueToFormat( record );
let value = this.valueToFormat( record );

if ( value === undefined || value === '' ) {
if ( value === undefined ) {
this.lastEventCount = undefined; // force a refresh on the native side
return '';
} else if ( tagName ) {
return `<${ tagName }>${ value }</${ tagName }>`;
value = '';
}
// On android if content is empty we need to send no content or else the placeholder with not show.
if ( ! this.isIOS && value === '' ) {
return value;
}

if ( tagName ) {
value = `<${ tagName }>${ value }</${ tagName }>`;
}
return value;
}
Expand Down