diff --git a/frontend/app/components/BugFinder/SessionsMenu/SessionsMenu.js b/frontend/app/components/BugFinder/SessionsMenu/SessionsMenu.js
index 198dc6593..eb5eaab86 100644
--- a/frontend/app/components/BugFinder/SessionsMenu/SessionsMenu.js
+++ b/frontend/app/components/BugFinder/SessionsMenu/SessionsMenu.js
@@ -11,7 +11,7 @@ import { useModal } from 'App/components/Modal';
import SessionSettings from 'Shared/SessionSettings/SessionSettings'
function SessionsMenu(props) {
- const { activeTab } = props;
+ const { activeTab, keyMap, wdTypeCount, toggleRehydratePanel, isEnterprise } = props;
const { showModal } = useModal();
const onMenuItemClick = (filter) => {
@@ -76,8 +76,8 @@ function SessionsMenu(props) {
onMenuItemClick({ name: 'Bookmarks', type: 'bookmark' })}
/>
@@ -96,6 +96,7 @@ export default connect(state => ({
captureRate: state.getIn(['watchdogs', 'captureRate']),
filters: state.getIn([ 'filters', 'appliedFilter' ]),
sessionsLoading: state.getIn([ 'sessions', 'fetchLiveListRequest', 'loading' ]),
+ isEnterprise: state.getIn([ 'user', 'client', 'edition' ]) === 'ee',
}), {
clearEvents, fetchSessionList
})(SessionsMenu);
diff --git a/frontend/app/components/Session_/PlayerBlockHeader.js b/frontend/app/components/Session_/PlayerBlockHeader.js
index 58a524022..4717c6329 100644
--- a/frontend/app/components/Session_/PlayerBlockHeader.js
+++ b/frontend/app/components/Session_/PlayerBlockHeader.js
@@ -12,6 +12,7 @@ import SharePopup from '../shared/SharePopup/SharePopup';
import { fetchList as fetchListIntegration } from 'Duck/integrations/actions';
import { countries } from 'App/constants';
import SessionMetaList from 'Shared/SessionItem/SessionMetaList';
+import Bookmark from 'Shared/Bookmark'
import stl from './playerBlockHeader.css';
import Issues from './Issues/Issues';
@@ -162,7 +163,8 @@ export default class PlayerBlockHeader extends React.PureComponent {
<>
-
+ {/*
+ /> */}
void,
+ toggleFavorite: (sessionId: string) => Promise,
favorite: Boolean,
- sessionId: any
+ sessionId: any,
+ isEnterprise: Boolean
}
-function Bookmark({ toggleFavorite, sessionId, favorite } : Props ) {
+function Bookmark(props : Props ) {
+ const { sessionId, favorite, isEnterprise } = props;
+ const [isFavorite, setIsFavorite] = useState(favorite);
+ const ADDED_MESSAGE = isEnterprise ? 'Session added to vault' : 'Session added to your favorites';
+ const REMOVED_MESSAGE = isEnterprise ? 'Session removed from vault' : 'Session removed from your favorites';
+ const TOOLTIP_TEXT_ADD = isEnterprise ? 'Add to vault' : 'Add to favorites';
+ const TOOLTIP_TEXT_REMOVE = isEnterprise ? 'Remove from vault' : 'Remove from favorites';
- return (
- toggleFavorite(sessionId) }
- data-favourite={ favorite }
+ const ACTIVE_ICON = isEnterprise ? 'safe-fill' : 'star-solid';
+ const INACTIVE_ICON = isEnterprise ? 'safe' : 'star';
+
+
+ useEffect(() => {
+ setIsFavorite(favorite);
+ }, [favorite]);
+
+ const toggleFavorite = async () => {
+ props.toggleFavorite(sessionId).then(() => {
+ toast.success(isFavorite ? REMOVED_MESSAGE : ADDED_MESSAGE);
+ setIsFavorite(!isFavorite);
+ });
+ }
+
+ return (
+
-
-
+
+
+
+
)
}
-export default connect(null, { toggleFavorite })(Bookmark)
+export default connect(state => ({
+ isEnterprise: state.getIn([ 'user', 'client', 'edition' ]) === 'ee',
+}), { toggleFavorite })(Bookmark)
diff --git a/frontend/app/svg/icons/safe-fill.svg b/frontend/app/svg/icons/safe-fill.svg
new file mode 100644
index 000000000..76ed5854e
--- /dev/null
+++ b/frontend/app/svg/icons/safe-fill.svg
@@ -0,0 +1,4 @@
+
\ No newline at end of file
diff --git a/frontend/app/svg/icons/safe.svg b/frontend/app/svg/icons/safe.svg
new file mode 100644
index 000000000..f06ce9c78
--- /dev/null
+++ b/frontend/app/svg/icons/safe.svg
@@ -0,0 +1,4 @@
+
\ No newline at end of file