diff --git a/package.json b/package.json index 5b75232510..a0ad8a9af6 100644 --- a/package.json +++ b/package.json @@ -75,6 +75,7 @@ "react-dnd-html5-backend": "^2.1.2", "react-dom": "^15.6.0", "react-gemini-scrollbar": "matrix-org/react-gemini-scrollbar#5e97aef", + "react-sticky": "^6.0.1", "sanitize-html": "^1.11.1", "text-encoding-utf-8": "^1.0.1", "ua-parser-js": "^0.7.10", diff --git a/src/components/views/messages/DateSeparator.js b/src/components/views/messages/DateSeparator.js index 84d63dd5ff..4dd60b1f42 100644 --- a/src/components/views/messages/DateSeparator.js +++ b/src/components/views/messages/DateSeparator.js @@ -17,6 +17,7 @@ limitations under the License. import React from 'react'; import { _t } from 'matrix-react-sdk/lib/languageHandler'; import DateUtils from 'matrix-react-sdk/lib/DateUtils'; +import { Sticky } from 'react-sticky'; function getdaysArray() { return [ @@ -53,7 +54,17 @@ module.exports = React.createClass({ } return ( -

{ label }

+ + {({style, isSticky, wasSticky, distanceFromTop}) => { + return ( +
+

{ label }

+
+ ); + }} +
); - } + }, }); diff --git a/src/skins/vector/css/vector-web/views/messages/_DateSeparator.scss b/src/skins/vector/css/vector-web/views/messages/_DateSeparator.scss index f676d24bef..5b36359e35 100644 --- a/src/skins/vector/css/vector-web/views/messages/_DateSeparator.scss +++ b/src/skins/vector/css/vector-web/views/messages/_DateSeparator.scss @@ -16,10 +16,26 @@ limitations under the License. .mx_DateSeparator { clear: both; - margin-top: 32px; - margin-bottom: 8px; + margin-top: 0px; + margin-bottom: 0px; margin-left: 63px; + padding-top: 5px; padding-bottom: 6px; border-bottom: 1px solid $primary-hairline-color; } +.mx_DateSeparator_container { + margin-top: 27px; + margin-bottom: 8px; + background-color: $primary-bg-color; + z-index: 3; +} + +.mx_DateSeparator_container_sticky { + position: relative; + border-bottom: 1px solid $primary-hairline-color; +} + +.mx_DateSeparator_container_sticky .mx_DateSeparator { + border: 0px; +}