add JumpToBottomButtom component
This commit is contained in:
parent
3c8bd3fc78
commit
5dd5f4f1dc
4 changed files with 134 additions and 0 deletions
|
@ -98,6 +98,7 @@
|
||||||
@import "./views/rooms/_AuxPanel.scss";
|
@import "./views/rooms/_AuxPanel.scss";
|
||||||
@import "./views/rooms/_EntityTile.scss";
|
@import "./views/rooms/_EntityTile.scss";
|
||||||
@import "./views/rooms/_EventTile.scss";
|
@import "./views/rooms/_EventTile.scss";
|
||||||
|
@import "./views/rooms/_JumpToBottomButton.scss";
|
||||||
@import "./views/rooms/_LinkPreviewWidget.scss";
|
@import "./views/rooms/_LinkPreviewWidget.scss";
|
||||||
@import "./views/rooms/_MemberDeviceInfo.scss";
|
@import "./views/rooms/_MemberDeviceInfo.scss";
|
||||||
@import "./views/rooms/_MemberInfo.scss";
|
@import "./views/rooms/_MemberInfo.scss";
|
||||||
|
|
69
res/css/views/rooms/_JumpToBottomButton.scss
Normal file
69
res/css/views/rooms/_JumpToBottomButton.scss
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
/*
|
||||||
|
Copyright 2019 New Vector Ltd
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
@charset "utf-8";
|
||||||
|
|
||||||
|
.mx_JumpToBottomButton {
|
||||||
|
z-index: 1000;
|
||||||
|
position: absolute;
|
||||||
|
// 12 because height is 50 but button is only 38 = 12+(50-38) = 24
|
||||||
|
bottom: 12px;
|
||||||
|
right: 24px;
|
||||||
|
width: 38px;
|
||||||
|
// give it a fixed height so the badge doesn't make
|
||||||
|
// it taller and pop upwards when visible
|
||||||
|
height: 50px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mx_JumpToBottomButton_badge {
|
||||||
|
position: relative;
|
||||||
|
top: -12px;
|
||||||
|
border-radius: 16px;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 12px;
|
||||||
|
line-height: 14px;
|
||||||
|
text-align: center;
|
||||||
|
// to be able to get it centered
|
||||||
|
// with text-align in parent
|
||||||
|
display: inline-block;
|
||||||
|
padding: 0 4px;
|
||||||
|
color: $secondary-accent-color;
|
||||||
|
background-color: $warning-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mx_JumpToBottomButton_scrollDown {
|
||||||
|
position: relative;
|
||||||
|
height: 38px;
|
||||||
|
border-radius: 19px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
background: $primary-bg-color;
|
||||||
|
border: 1.3px solid $roomtile-name-color;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mx_JumpToBottomButton_scrollDown:before {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
mask: url('$(res)/img/icon-jump-to-bottom.svg');
|
||||||
|
mask-repeat: no-repeat;
|
||||||
|
mask-position: 9px 14px;
|
||||||
|
background: $roomtile-name-color;
|
||||||
|
}
|
32
res/img/icon-jump-to-bottom.svg
Normal file
32
res/img/icon-jump-to-bottom.svg
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
id="svg4"
|
||||||
|
width="18.666187"
|
||||||
|
height="8.7375822"
|
||||||
|
viewBox="0 0 18.666187 8.7375818"
|
||||||
|
version="1.1"
|
||||||
|
style="fill:none">
|
||||||
|
<metadata
|
||||||
|
id="metadata8">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<defs
|
||||||
|
id="defs8" />
|
||||||
|
<path
|
||||||
|
id="path2-8-3"
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1.29999995;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="M 17.909095,0.75599092 9.3330939,7.987602 0.75709259,0.75599092" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1,016 B |
32
src/components/views/rooms/JumpToBottomButton.js
Normal file
32
src/components/views/rooms/JumpToBottomButton.js
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
/*
|
||||||
|
Copyright 2019 New Vector Ltd
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { _t } from '../../../languageHandler';
|
||||||
|
import AccessibleButton from '../elements/AccessibleButton';
|
||||||
|
|
||||||
|
export default (props) => {
|
||||||
|
let badge;
|
||||||
|
if (props.numUnreadMessages) {
|
||||||
|
badge = <div className="mx_JumpToBottomButton_badge">{props.numUnreadMessages}</div>
|
||||||
|
}
|
||||||
|
return (<div className="mx_JumpToBottomButton">
|
||||||
|
<AccessibleButton className="mx_JumpToBottomButton_scrollDown"
|
||||||
|
title={_t("Scroll to bottom of page")}
|
||||||
|
onClick={props.onScrollToBottomClick}>
|
||||||
|
</AccessibleButton>
|
||||||
|
{ badge }
|
||||||
|
</div>);
|
||||||
|
};
|
Loading…
Add table
Add a link
Reference in a new issue