From 3751379f1e9a4c215fb6eb898b4ccc67659b9ace Mon Sep 17 00:00:00 2001 From: stephanchrst Date: Tue, 10 May 2022 21:51:50 +0700 Subject: initial commit 2 --- .../components/visitor_banner/visitor_banner.js | 47 +++++++++++ .../components/visitor_banner/visitor_banner.scss | 90 ++++++++++++++++++++++ .../components/visitor_banner/visitor_banner.xml | 37 +++++++++ 3 files changed, 174 insertions(+) create mode 100644 addons/website_livechat/static/src/components/visitor_banner/visitor_banner.js create mode 100644 addons/website_livechat/static/src/components/visitor_banner/visitor_banner.scss create mode 100644 addons/website_livechat/static/src/components/visitor_banner/visitor_banner.xml (limited to 'addons/website_livechat/static/src/components/visitor_banner') diff --git a/addons/website_livechat/static/src/components/visitor_banner/visitor_banner.js b/addons/website_livechat/static/src/components/visitor_banner/visitor_banner.js new file mode 100644 index 00000000..4d0b95a8 --- /dev/null +++ b/addons/website_livechat/static/src/components/visitor_banner/visitor_banner.js @@ -0,0 +1,47 @@ +odoo.define('website_livechat/static/src/components/visitor_banner/visitor_banner.js', function (require) { +'use strict'; + +const useStore = require('mail/static/src/component_hooks/use_store/use_store.js'); + +const { Component } = owl; + +class VisitorBanner extends Component { + + /** + * @override + */ + constructor(...args) { + super(...args); + useStore(props => { + const visitor = this.env.models['website_livechat.visitor'].get(props.visitorLocalId); + const country = visitor && visitor.country; + return { + country: country && country.__state, + visitor: visitor ? visitor.__state : undefined, + }; + }); + } + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + /** + * @returns {website_livechat.visitor} + */ + get visitor() { + return this.env.models['website_livechat.visitor'].get(this.props.visitorLocalId); + } + +} + +Object.assign(VisitorBanner, { + props: { + visitorLocalId: String, + }, + template: 'website_livechat.VisitorBanner', +}); + +return VisitorBanner; + +}); diff --git a/addons/website_livechat/static/src/components/visitor_banner/visitor_banner.scss b/addons/website_livechat/static/src/components/visitor_banner/visitor_banner.scss new file mode 100644 index 00000000..9f042d2a --- /dev/null +++ b/addons/website_livechat/static/src/components/visitor_banner/visitor_banner.scss @@ -0,0 +1,90 @@ +// ----------------------------------------------------------------------------- +// Layout +// ----------------------------------------------------------------------------- + +.o_VisitorBanner { + border-bottom-width: $border-width; + border-bottom-style: solid; + display: flex; + flex: 0 0 auto; + padding: map-get($spacers, 4) map-get($spacers, 2); +} + +.o_VisitorBanner_avatar { + height: map-get($sizes, 100); + width: map-get($sizes, 100); + object-fit: cover; +} + +.o_VisitorBanner_avatarContainer { + height: $o-mail-thread-avatar-size; + width: $o-mail-thread-avatar-size; + margin-left: map-get($spacers, 1); + margin-right: map-get($spacers, 1); + position: relative; +} + +.o_VisitorBanner_country { + margin-inline-end: map-get($spacers, 1); +} + +.o_VisitorBanner_history { + margin-top: map-get($spacers, 1); +} + +.o_VisitorBanner_historyIcon { + margin-inline-end: map-get($spacers, 1); +} + +.o_VisitorBanner_language { + margin-inline-end: map-get($spacers, 3); +} + +.o_VisitorBanner_languageIcon { + margin-inline-end: map-get($spacers, 1); +} + +.o_VisitorBanner_onlineStatusIcon { + @include o-position-absolute($bottom: 0, $right: 0); + display: flex; + align-items: center; + justify-content: center; + flex-flow: column; + width: 1.2em; + height: 1.2em; + line-height: 1.3em; + font-size: x-small; +} + +.o_VisitorBanner_sidebar { + display: flex; + flex: 0 0 $o-mail-message-sidebar-width; + justify-content: center; + margin-inline-end: map-get($spacers, 2); + max-width: $o-mail-message-sidebar-width; +} + +.o_VisitorBanner_visitor { + margin-inline-end: map-get($spacers, 3); +} + +.o_VisitorBanner_websiteIcon { + margin-inline-end: map-get($spacers, 1); +} + +// ------------------------------------------------------------------ +// Style +// ------------------------------------------------------------------ + +.o_VisitorBanner { + background: $white; + border-bottom-color: gray('400'); +} + +.o_VisitorBanner_onlineStatusIcon { + color: $o-enterprise-primary-color; +} + +.o_VisitorBanner_visitor { + font-weight: $font-weight-bold; +} diff --git a/addons/website_livechat/static/src/components/visitor_banner/visitor_banner.xml b/addons/website_livechat/static/src/components/visitor_banner/visitor_banner.xml new file mode 100644 index 00000000..b1dc4bd3 --- /dev/null +++ b/addons/website_livechat/static/src/components/visitor_banner/visitor_banner.xml @@ -0,0 +1,37 @@ + + + + +
+
+
+ Avatar + + + +
+
+
+ + + + + + + + + + + + + + +
+ + +
+
+
+
+ +
-- cgit v1.2.3