Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
1b9feb77
Commit
1b9feb77
authored
Feb 04, 2020
by
Enrique Alcantara
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix duplicated user popover
parent
c6631e6b
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
16 additions
and
1 deletion
+16
-1
app/assets/javascripts/user_popovers.js
app/assets/javascripts/user_popovers.js
+9
-1
spec/javascripts/user_popovers_spec.js
spec/javascripts/user_popovers_spec.js
+7
-0
No files found.
app/assets/javascripts/user_popovers.js
View file @
1b9feb77
...
...
@@ -54,11 +54,17 @@ const populateUserInfo = user => {
);
};
const
initializedPopovers
=
new
Map
();
export
default
(
elements
=
document
.
querySelectorAll
(
'
.js-user-link
'
))
=>
{
const
userLinks
=
Array
.
from
(
elements
);
const
UserPopoverComponent
=
Vue
.
extend
(
UserPopover
);
return
userLinks
.
map
(
el
=>
{
const
UserPopoverComponent
=
Vue
.
extend
(
UserPopover
);
if
(
initializedPopovers
.
has
(
el
))
{
return
initializedPopovers
.
get
(
el
);
}
const
user
=
{
location
:
null
,
bio
:
null
,
...
...
@@ -73,6 +79,8 @@ export default (elements = document.querySelectorAll('.js-user-link')) => {
},
});
initializedPopovers
.
set
(
el
,
renderedPopover
);
renderedPopover
.
$mount
();
el
.
addEventListener
(
'
mouseenter
'
,
({
target
})
=>
{
...
...
spec/javascripts/user_popovers_spec.js
View file @
1b9feb77
...
...
@@ -38,6 +38,13 @@ describe('User Popovers', () => {
expect
(
document
.
querySelectorAll
(
selector
).
length
).
toBe
(
popovers
.
length
);
});
it
(
'
does not initialize the user popovers twice for the same element
'
,
()
=>
{
const
newPopovers
=
initUserPopovers
(
document
.
querySelectorAll
(
selector
));
const
samePopovers
=
popovers
.
every
((
popover
,
index
)
=>
newPopovers
[
index
]
===
popover
);
expect
(
samePopovers
).
toBe
(
true
);
});
describe
(
'
when user link emits mouseenter event
'
,
()
=>
{
let
userLink
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment