diff --git a/src/components/gui/gui.jsx b/src/components/gui/gui.jsx index f48e5a6ec33..94eca3035b0 100644 --- a/src/components/gui/gui.jsx +++ b/src/components/gui/gui.jsx @@ -31,6 +31,8 @@ import DragLayer from '../../containers/drag-layer.jsx'; import ConnectionModal from '../../containers/connection-modal.jsx'; import TelemetryModal from '../telemetry-modal/telemetry-modal.jsx'; +import Header from '../header/header.jsx'; + import layout, {STAGE_SIZE_MODES} from '../../lib/layout-constants'; import {resolveStageSize} from '../../lib/screen-utils'; import {themeMap} from '../../lib/themes'; @@ -165,6 +167,11 @@ const GUIComponent = props => { dir={isRtl ? 'rtl' : 'ltr'} {...componentProps} > + +
{telemetryModalVisible ? ( { + this.setState(prevState => ({ + timeLeft: prevState.timeLeft > 0 ? prevState.timeLeft - 1 : 0 + })); + }, 1000); + } + + componentWillUnmount() { + clearInterval(this.timer); + } + + formatTime(seconds) { + const h = String(Math.floor(seconds / 3600)).padStart(2, '0'); + const m = String(Math.floor((seconds % 3600) / 60)).padStart(2, '0'); + const s = String(seconds % 60).padStart(2, '0'); + return `${h}:${m}:${s}`; + } + + render() { + const { timeLeft } = this.state; + const { logo, title } = this.props; + + return ( + +
+
+ Scratch +
+
{title}
+
+
+ {timeLeft > 0 ? ( + <> +
您已获得会员体验权限,您的体验时间剩余:
+
{this.formatTime(timeLeft)}
+ + ) : ( + <> +
您的会员体验时间已用尽,成为会员
+
立即解锁所有功能
+ + )} +
+
+ +
+
+ ); + } +} + +Header.propTypes = { + title: PropTypes.string.isRequired, + logo: PropTypes.string.isRequired, +}; + +export default Header; \ No newline at end of file diff --git a/src/components/header/image/member.svg b/src/components/header/image/member.svg new file mode 100644 index 00000000000..93183d53e87 --- /dev/null +++ b/src/components/header/image/member.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/header/image/member1.svg b/src/components/header/image/member1.svg new file mode 100644 index 00000000000..de749a32289 --- /dev/null +++ b/src/components/header/image/member1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/menu-bar/menu-bar.jsx b/src/components/menu-bar/menu-bar.jsx index ab3081775ad..b6525584b2f 100644 --- a/src/components/menu-bar/menu-bar.jsx +++ b/src/components/menu-bar/menu-bar.jsx @@ -424,18 +424,6 @@ class MenuBar extends React.Component { >
-
- Scratch -
{(this.props.canChangeTheme || this.props.canChangeLanguage) && ( )}
- {this.props.canEditTitle ? ( -
- - - -
- ) : ((this.props.authorUsername && this.props.authorUsername !== this.props.username) ? ( - - ) : null)} -
- {this.props.canShare ? ( - (this.props.isShowingProject || this.props.isUpdating) && ( - - { - waitForUpdate => ( - { - this.handleClickShare(waitForUpdate); - }} - /* eslint-enable react/jsx-no-bind */ - /> - ) - } - - ) - ) : ( - this.props.showComingSoon ? ( - - - - ) : [] - )} - {this.props.canRemix ? remixButton : []} -
-
- {this.props.enableCommunity ? ( - (this.props.isShowingProject || this.props.isUpdating) && ( - - { - waitForUpdate => ( - { - this.handleClickSeeCommunity(waitForUpdate); - }} - /* eslint-enable react/jsx-no-bind */ - /> - ) - } - - ) - ) : (this.props.showComingSoon ? ( - - - - ) : [])} -
- {this.props.showComingSoon ? ( - - -
- -
-
- -
- - - {'scratch-cat'} - - -
-
-
- ) : []} )}
diff --git a/static/logo.png b/static/logo.png new file mode 100644 index 00000000000..3625d35860f Binary files /dev/null and b/static/logo.png differ