You've already forked matrix-react-sdk
							
							
				mirror of
				https://github.com/matrix-org/matrix-react-sdk.git
				synced 2025-11-04 11:51:45 +03:00 
			
		
		
		
	Add a "reload widget" button.
This commit is contained in:
		
							
								
								
									
										12
									
								
								res/img/button-refresh.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								res/img/button-refresh.svg
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
 | 
			
		||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
 | 
			
		||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
 | 
			
		||||
	 width="612px" height="612px" viewBox="0 90 612 612" enable-background="new 0 90 612 612" xml:space="preserve">
 | 
			
		||||
<path stroke="#76CFA6"  fill="#76CFA6" stroke-width="40" stroke-miterlimit="10" d="M517.593,435.2c-9.204,0-17.093,7.053-17.811,16.257
 | 
			
		||||
	c-8.247,99.33-91.8,176.786-193.401,176.786c-106.98,0-194.119-86.54-194.119-192.923c0-104.71,84.389-190.294,189.098-192.924
 | 
			
		||||
	c2.75-0.12,4.901,2.032,4.901,4.781v60.124c0,15.061,16.614,24.146,29.404,16.137l114.989-80.444
 | 
			
		||||
	c11.953-7.53,11.953-24.862,0-32.393l-114.869-79.369c-12.79-8.009-29.405,1.076-29.405,16.137v54.626
 | 
			
		||||
	c0,2.629-2.032,4.781-4.661,4.781C176.929,209.286,76.522,310.649,76.522,435.32c0,126.225,102.917,228.424,229.858,228.424
 | 
			
		||||
	c120.487,0,219.221-91.681,229.022-209.299C536.359,444.046,527.992,435.2,517.593,435.2L517.593,435.2z"/>
 | 
			
		||||
</svg>
 | 
			
		||||
| 
		 After Width: | Height: | Size: 1.1 KiB  | 
@@ -55,6 +55,7 @@ export default class AppTile extends React.Component {
 | 
			
		||||
        this._grantWidgetPermission = this._grantWidgetPermission.bind(this);
 | 
			
		||||
        this._revokeWidgetPermission = this._revokeWidgetPermission.bind(this);
 | 
			
		||||
        this._onPopoutWidgetClick = this._onPopoutWidgetClick.bind(this);
 | 
			
		||||
        this._onReloadWidgetClick = this._onReloadWidgetClick.bind(this);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
@@ -519,6 +520,11 @@ export default class AppTile extends React.Component {
 | 
			
		||||
            { target: '_blank', href: this._getSafeUrl(), rel: 'noopener noreferrer'}).click();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    _onReloadWidgetClick(e) {
 | 
			
		||||
        // Reload iframe in this way to avoid cross-origin restrictions
 | 
			
		||||
        this.refs.appFrame.src = this.refs.appFrame.src;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    render() {
 | 
			
		||||
        let appTileBody;
 | 
			
		||||
 | 
			
		||||
@@ -606,6 +612,7 @@ export default class AppTile extends React.Component {
 | 
			
		||||
        const showPictureSnapshotButton = this._hasCapability('m.capability.screenshot') && this.props.show;
 | 
			
		||||
        const showPictureSnapshotIcon = 'img/camera_green.svg';
 | 
			
		||||
        const popoutWidgetIcon = 'img/button-new-window.svg';
 | 
			
		||||
        const reloadWidgetIcon = 'img/button-refresh.svg';
 | 
			
		||||
        const windowStateIcon = (this.props.show ? 'img/minimize.svg' : 'img/maximize.svg');
 | 
			
		||||
 | 
			
		||||
        return (
 | 
			
		||||
@@ -624,6 +631,16 @@ export default class AppTile extends React.Component {
 | 
			
		||||
                        { this.props.showTitle && this._getTileTitle() }
 | 
			
		||||
                    </span>
 | 
			
		||||
                    <span className="mx_AppTileMenuBarWidgets">
 | 
			
		||||
                        { /* Reload widget */ }
 | 
			
		||||
                        { this.props.showReload && <TintableSvgButton
 | 
			
		||||
                            src={reloadWidgetIcon}
 | 
			
		||||
                            className="mx_AppTileMenuBarWidget mx_AppTileMenuBarWidgetPadding"
 | 
			
		||||
                            title={_t('Reload widget')}
 | 
			
		||||
                            onClick={this._onReloadWidgetClick}
 | 
			
		||||
                            width="10"
 | 
			
		||||
                            height="10"
 | 
			
		||||
                        /> }
 | 
			
		||||
 | 
			
		||||
                        { /* Popout widget */ }
 | 
			
		||||
                        { this.props.showPopout && <TintableSvgButton
 | 
			
		||||
                            src={popoutWidgetIcon}
 | 
			
		||||
@@ -707,6 +724,11 @@ AppTile.propTypes = {
 | 
			
		||||
    showDelete: PropTypes.bool,
 | 
			
		||||
    // Optionally hide the popout widget icon
 | 
			
		||||
    showPopout: PropTypes.bool,
 | 
			
		||||
    // Optionally show the reload widget icon
 | 
			
		||||
    // This is not currently intended for use with production widgets. However
 | 
			
		||||
    // it can be useful when developing persistent widgets in order to avoid
 | 
			
		||||
    // having to reload all of riot to get new widget content.
 | 
			
		||||
    showReload: PropTypes.bool,
 | 
			
		||||
    // Widget capabilities to allow by default (without user confirmation)
 | 
			
		||||
    // NOTE -- Use with caution. This is intended to aid better integration / UX
 | 
			
		||||
    // basic widget capabilities, e.g. injecting sticker message events.
 | 
			
		||||
@@ -726,6 +748,7 @@ AppTile.defaultProps = {
 | 
			
		||||
    showMinimise: true,
 | 
			
		||||
    showDelete: true,
 | 
			
		||||
    showPopout: true,
 | 
			
		||||
    showReload: false,
 | 
			
		||||
    handleMinimisePointerEvents: false,
 | 
			
		||||
    whitelistCapabilities: [],
 | 
			
		||||
    userWidget: false,
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user