diff --git a/logs.log b/logs.log new file mode 100644 index 0000000..e69de29 diff --git a/src/common/blockchain/services/discover-service/discover-service.js b/src/common/blockchain/services/discover-service/discover-service.js index 68ce2c1..aabc144 100644 --- a/src/common/blockchain/services/discover-service/discover-service.js +++ b/src/common/blockchain/services/discover-service/discover-service.js @@ -67,7 +67,7 @@ class DiscoverService extends BlockchainService { .call({ from: this.sharedContext.account }) const dappMetadata = dappsCache[dapp.metadata] - if (dappMetadata) { + if (typeof dappMetadata !== 'undefined') { delete dappsCache[dapp.metadata] dapp.metadata = dappMetadata.details dapp.metadata.status = dappMetadata.status @@ -79,7 +79,7 @@ class DiscoverService extends BlockchainService { Object.keys(dappsCache).forEach(metadataHash => { const dappMetadata = dappsCache[metadataHash] - if (dappMetadata.status == 'APPROVED') { + if (dappMetadata.status == 'NEW') { dapps.push({ developer: '', id: dappMetadata.compressedMetadata, diff --git a/src/common/clients/http-client.js b/src/common/clients/http-client.js index de8570f..779a757 100644 --- a/src/common/clients/http-client.js +++ b/src/common/clients/http-client.js @@ -1,32 +1,32 @@ -const axios = require('axios'); +const axios = require('axios') const DEFAULT_HEADERS = { Accept: 'application/json', - 'Content-type': 'application/json' -}; + 'Content-type': 'application/json', +} const executeRequest = async function(method, url, reqStruct) { return axios({ method, - url, + url: `http://localhost:4000${url}`, data: { - ...reqStruct.body + ...reqStruct.body, }, headers: { ...DEFAULT_HEADERS, - ...reqStruct.headers - } - }); -}; + ...reqStruct.headers, + }, + }) +} class HTTPClient { static async postRequest(url, body, headers = '') { - return executeRequest('POST', url, { body, headers }); + return executeRequest('POST', url, { body, headers }) } static async getRequest(url, headers = '') { - return executeRequest('GET', url, { headers }); + return executeRequest('GET', url, { headers }) } } -export default HTTPClient; +export default HTTPClient diff --git a/src/common/components/Search/Search.jsx b/src/common/components/Search/Search.jsx index 7c14e43..d786c99 100644 --- a/src/common/components/Search/Search.jsx +++ b/src/common/components/Search/Search.jsx @@ -30,24 +30,23 @@ class Search extends React.Component { } render() { - const { searchStyle, onSearch, searchResultStyle } = this.props + const { searchStyle, searchResultStyle } = this.props const { dapps, isSearching } = this.state return ( - <> -
- Search Icon - this.handleChange(e)} - className={[styles.search, searchStyle].join(' ')} - placeholder="Search Dapps" - onSearch={onSearch(isSearching)} - /> -
-
- -
- +
+ Search Icon + this.handleChange(e)} + className={[styles.search, searchStyle].join(' ')} + placeholder="Search Dapps" + /> + {isSearching && ( +
+ +
+ )} +
) } } @@ -56,7 +55,6 @@ Search.propTypes = { searchStyle: PropTypes.string, searchResultStyle: PropTypes.string, dappState: PropTypes.instanceOf(DappState).isRequired, - onSearch: PropTypes.func.isRequired, } Search.defaultProps = { diff --git a/src/common/components/Search/Search.module.scss b/src/common/components/Search/Search.module.scss index 8de0fc9..fc32515 100644 --- a/src/common/components/Search/Search.module.scss +++ b/src/common/components/Search/Search.module.scss @@ -1,29 +1,96 @@ @import '../../styles/_variables.scss'; -.container { - display: flex; - flex: 1; - border: 1px solid #eef2f5; - border-radius: calculateRem(4); - overflow: hidden; - margin: calculateRem(16); - img { - padding: calculateRem(5); - align-self: center; +@media (min-width: $desktop) { + .search_container { + height: calculateRem(20); + cursor: pointer; + border-radius: calculateRem(40); + background: #ffffff; + padding: calculateRem(10); + position: absolute; + box-shadow: 0px 4px 12px rgba(0, 34, 51, 0.08), + 0px 2px 4px rgba(0, 34, 51, 0.16); + right: calculateRem(20); + top: calculateRem(60); + display: flex; + z-index: 1; + transform: translateY(-50%); + + &:hover { + width: calculateRem(240); + .search { + width: calculateRem(240); + display: block; + } + .searchResults { + z-index: 99; + display: block; + position: absolute; + top: calculateRem(39); + background: #ffffff; + left: 0; + border-bottom-left-radius: calculateRem(5); + border-bottom-right-radius: calculateRem(5); + box-shadow: 0 0 0 rgba(0, 34, 51, 0.08), + 0px 2px 4px rgba(0, 34, 51, 0.16); + } + } + img { + align-self: center; + } + + .search { + font-family: 'Inter'; + font-size: calculateRem(15); + border: none; + background: none; + display: none; + outline: none; + transition: 0.4s; + line-height: calculateRem(15); + width: 0px; + &::placeholder { + color: #939ba1; + } + } + .searchResults { + display: none; + width: 100%; + } } } -.search { - font-family: 'Inter'; - font-size: calculateRem(15); - flex: 1; - border: none; - outline: none; - &::placeholder { - color: #939ba1; +@media (max-width: $desktop) { + .search_container { + display: flex; + flex: 1; + border: 1px solid #eef2f5; + border-radius: calculateRem(4); + overflow: hidden; + margin: calculateRem(16); + img { + padding: calculateRem(5); + align-self: center; + } + .search { + font-family: 'Inter'; + font-size: calculateRem(15); + flex: 1; + border: none; + outline: none; + &::placeholder { + color: #939ba1; + } + } + + .searchResults { + z-index: 99; + top: calculateRem(100); + width: 92vw; + background-position: center center; + background-repeat: no-repeat; + background-attachment: fixed; + background-size: cover; + } } } - -.searchResults { - z-index: 99; -} diff --git a/src/common/components/Search/SearchResultItem/SearchResultItem.jsx b/src/common/components/Search/SearchResultItem/SearchResultItem.jsx index 83d9364..3138d62 100644 --- a/src/common/components/Search/SearchResultItem/SearchResultItem.jsx +++ b/src/common/components/Search/SearchResultItem/SearchResultItem.jsx @@ -21,19 +21,17 @@ const SearchResultItem = props => { />
- <> -

{name}

-

- {description} -

- - {url} -  → - - +

{name}

+

+ {description} +

+ + {url} +  → +
) diff --git a/src/modules/CategorySelector/CategorySelector.jsx b/src/modules/CategorySelector/CategorySelector.jsx index 4950884..f395a77 100644 --- a/src/modules/CategorySelector/CategorySelector.jsx +++ b/src/modules/CategorySelector/CategorySelector.jsx @@ -2,7 +2,6 @@ import React from 'react' import PropTypes from 'prop-types' import CategoryIcon from '../../common/components/CategoryIcon' import ViewAll from '../../common/components/ViewAll' -import Search from '../../common/components/Search' import categories from '../../common/utils/categories' import humanise from '../../common/utils/humanise' import dropdownArrows from '../../common/assets/images/dropdown-arrows.svg' @@ -11,14 +10,13 @@ import styles from './CategorySelector.module.scss' class CategorySelector extends React.Component { constructor(props) { super(props) - this.state = { open: false, isSearching: false } + this.state = { open: false } this.toggle = this.toggle.bind(this) this.updateCategory = this.updateCategory.bind(this) this.container = React.createRef() this.onClickSubmit = this.onClickSubmit.bind(this) this.onClickHighestRanked = this.onClickHighestRanked.bind(this) this.onClickRecentlyAdded = this.onClickRecentlyAdded.bind(this) - this.onSearch = this.onSearch.bind(this) } componentDidMount() { @@ -45,10 +43,6 @@ class CategorySelector extends React.Component { this.setState({ open: false }) } - onSearch(isSearching) { - this.setState({ isSearching }) - } - onClickHighestRanked(e) { const { onClickCloseDesktopMenu } = this.props onClickCloseDesktopMenu() @@ -83,7 +77,6 @@ class CategorySelector extends React.Component { showSubmitDApp, } = this.props let { open } = this.state - const { isSearching } = this.state if (alwaysOpen === true) open = true return ( @@ -92,22 +85,11 @@ class CategorySelector extends React.Component { style={open ? { visible: 'block' } : { display: 'none' }} className={styles.open} > - -
+

Categories

-
+
{categories.map(c => (