about summary refs log tree commit diff
path: root/app/javascript/flavours/glitch/features/picture_in_picture/components/header.js
diff options
context:
space:
mode:
authorThibG <thib@sitedethib.com>2020-10-26 22:54:50 +0100
committerGitHub <noreply@github.com>2020-10-26 22:54:50 +0100
commitc762ca49dc924ce32b512c2aece4d7d1e0229b5c (patch)
tree3f24094f0886e1c437230a1125fbc49dd5cf65a6 /app/javascript/flavours/glitch/features/picture_in_picture/components/header.js
parent9c88792f0a60f2b383f0d3919475403e1e244faf (diff)
parent49ee69f75f24ef13f36cb177d5278fcc3a5f3d37 (diff)
Merge pull request #1443 from ThibG/glitch-soc/features/upstream-pop-in
Port upstream's pop-in player to glitch-soc
Diffstat (limited to 'app/javascript/flavours/glitch/features/picture_in_picture/components/header.js')
-rw-r--r--app/javascript/flavours/glitch/features/picture_in_picture/components/header.js40
1 files changed, 40 insertions, 0 deletions
diff --git a/app/javascript/flavours/glitch/features/picture_in_picture/components/header.js b/app/javascript/flavours/glitch/features/picture_in_picture/components/header.js
new file mode 100644
index 000000000..24adcde25
--- /dev/null
+++ b/app/javascript/flavours/glitch/features/picture_in_picture/components/header.js
@@ -0,0 +1,40 @@
+import React from 'react';
+import { connect } from 'react-redux';
+import ImmutablePureComponent from 'react-immutable-pure-component';
+import ImmutablePropTypes from 'react-immutable-proptypes';
+import PropTypes from 'prop-types';
+import IconButton from 'flavours/glitch/components/icon_button';
+import { Link } from 'react-router-dom';
+import Avatar from 'flavours/glitch/components/avatar';
+import DisplayName from 'flavours/glitch/components/display_name';
+
+const mapStateToProps = (state, { accountId }) => ({
+  account: state.getIn(['accounts', accountId]),
+});
+
+export default @connect(mapStateToProps)
+class Header extends ImmutablePureComponent {
+
+  static propTypes = {
+    accountId: PropTypes.string.isRequired,
+    statusId: PropTypes.string.isRequired,
+    account: ImmutablePropTypes.map.isRequired,
+    onClose: PropTypes.func.isRequired,
+  };
+
+  render () {
+    const { account, statusId, onClose } = this.props;
+
+    return (
+      <div className='picture-in-picture__header'>
+        <Link to={`/statuses/${statusId}`} className='picture-in-picture__header__account'>
+          <Avatar account={account} size={36} />
+          <DisplayName account={account} />
+        </Link>
+
+        <IconButton icon='times' onClick={onClose} title='Close' />
+      </div>
+    );
+  }
+
+}