diff --git a/src/plugins/navigation/__tests__/testNavigationPlugin.node.js b/src/plugins/navigation/__tests__/testNavigationPlugin.node.js index 1642dd230..bab2dfcd2 100644 --- a/src/plugins/navigation/__tests__/testNavigationPlugin.node.js +++ b/src/plugins/navigation/__tests__/testNavigationPlugin.node.js @@ -12,12 +12,14 @@ import type {PersistedState} from '../'; function constructPersistedStateMock(): PersistedState { return { + bookmarks: [], navigationEvents: [], }; } function constructPersistedStateMockWithEvents(): PersistedState { return { + bookmarks: [], navigationEvents: [ { uri: 'mock://this_is_a_mock_uri/mock/1', diff --git a/src/plugins/navigation/components/BookmarksSidebar.js b/src/plugins/navigation/components/BookmarksSidebar.js new file mode 100644 index 000000000..07b6ab63e --- /dev/null +++ b/src/plugins/navigation/components/BookmarksSidebar.js @@ -0,0 +1,29 @@ +/** + * Copyright 2018-present Facebook. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * @format + * @flow strict-local + */ + +import {DetailSidebar, FlexCenter, styled, colors} from 'flipper'; + +import type {Bookmark} from '../'; + +type Props = {| + bookmarks: Array, +|}; + +const NoData = styled(FlexCenter)({ + fontSize: 18, + color: colors.macOSTitleBarIcon, +}); + +export default (props: Props) => { + const {bookmarks} = props; + return ( + + {bookmarks.length === 0 ? No Bookmarks : null} + + ); +}; diff --git a/src/plugins/navigation/components/index.js b/src/plugins/navigation/components/index.js index 429d0d35e..fc75d8861 100644 --- a/src/plugins/navigation/components/index.js +++ b/src/plugins/navigation/components/index.js @@ -6,6 +6,7 @@ * @flow strict-local */ +export {default as BookmarksSidebar} from './BookmarksSidebar'; export {default as FavoriteButton} from './FavoriteButton'; export {default as IconButton} from './IconButton'; export {default as NavigationInfoBox} from './NavigationInfoBox'; diff --git a/src/plugins/navigation/index.js b/src/plugins/navigation/index.js index 557b4561c..8cae0794d 100644 --- a/src/plugins/navigation/index.js +++ b/src/plugins/navigation/index.js @@ -7,19 +7,28 @@ */ import {FlipperPlugin} from 'flipper'; -import {SearchBar, Timeline, ScrollableFlexColumn} from './components'; +import { + BookmarksSidebar, + SearchBar, + Timeline, + ScrollableFlexColumn, +} from './components'; type State = {||}; -type Data = {||}; - export type NavigationEvent = {| date: ?Date, uri: ?string, |}; +export type Bookmark = {| + uri: string, + commonName: ?string, +|}; + export type PersistedState = {| navigationEvents: Array, + bookmarks: Array, |}; export default class extends FlipperPlugin { @@ -30,6 +39,7 @@ export default class extends FlipperPlugin { static defaultPersistedState: PersistedState = { navigationEvents: [], + bookmarks: [], }; static persistedStateReducer = ( @@ -69,17 +79,15 @@ export default class extends FlipperPlugin { }; render() { - const {persistedState} = this.props; + const {navigationEvents, bookmarks} = this.props.persistedState; return ( {}} /> - + + ); }