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 (
- <>
-
-
-
this.handleChange(e)}
- className={[styles.search, searchStyle].join(' ')}
- placeholder="Search Dapps"
- onSearch={onSearch(isSearching)}
- />
-
-
-
-
- >
+
+
+
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 => {
/>
)
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 => (