diff --git a/public/icons/icon-192x192.png b/public/icons/icon-192x192.png new file mode 100644 index 0000000..cfd5211 Binary files /dev/null and b/public/icons/icon-192x192.png differ diff --git a/public/icons/icon-256x256.png b/public/icons/icon-256x256.png new file mode 100644 index 0000000..8b1d420 Binary files /dev/null and b/public/icons/icon-256x256.png differ diff --git a/public/icons/icon-384x384.png b/public/icons/icon-384x384.png new file mode 100644 index 0000000..81f5330 Binary files /dev/null and b/public/icons/icon-384x384.png differ diff --git a/public/icons/icon-512x512.png b/public/icons/icon-512x512.png new file mode 100644 index 0000000..a01c287 Binary files /dev/null and b/public/icons/icon-512x512.png differ diff --git a/public/icons/icon.svg b/public/icons/icon.svg new file mode 100644 index 0000000..a4b6abb --- /dev/null +++ b/public/icons/icon.svg @@ -0,0 +1,16 @@ + + + + + + + + \ No newline at end of file diff --git a/public/index.html b/public/index.html index cf27db3..0420bc7 100644 --- a/public/index.html +++ b/public/index.html @@ -2,12 +2,12 @@ - + - + Secret-in diff --git a/public/logo.svg b/public/logo.svg new file mode 100644 index 0000000..7a27b38 --- /dev/null +++ b/public/logo.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/manifest.json b/public/manifest.json index da58cd5..3908fea 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -1,8 +1,38 @@ { - "short_name": "Secret-in.me", - "name": "Secret-in.me - Open source secret manager with sharing capability", - "start_url": "./index.html", + "categories": ["security"], + "theme_color": "#001769", + "background_color": "#001769", "display": "standalone", - "theme_color": "#3498db", - "background_color": "#fafafa" -} + "scope": "/", + "start_url": "./index.html", + "name": "Secret-in.me - Open source secret manager with sharing capability", + "short_name": "Secret-in.me", + "description": "A team-oriented open source password manager with a focus on transparency, usability and security.", + "icons": [ + { + "src": "/icons/icon.svg", + "sizes": "any", + "type": "image/svg+xml" + }, + { + "src": "/icons/icon-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/icons/icon-256x256.png", + "sizes": "256x256", + "type": "image/png" + }, + { + "src": "/icons/icon-384x384.png", + "sizes": "384x384", + "type": "image/png" + }, + { + "src": "/icons/icon-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ] +} \ No newline at end of file diff --git a/src/components/Sidebar.js b/src/components/Sidebar.js index 5c56d27..f9637ff 100644 --- a/src/components/Sidebar.js +++ b/src/components/Sidebar.js @@ -67,7 +67,12 @@ function Sidebar() {
- {isOnline ? 'Secret-In.me' : 'Offline'} + logo
diff --git a/src/components/secrets/SecretUserListNew.js b/src/components/secrets/SecretUserListNew.js index 8f09d7d..5eccaab 100644 --- a/src/components/secrets/SecretUserListNew.js +++ b/src/components/secrets/SecretUserListNew.js @@ -15,6 +15,7 @@ import Icon from 'components/utilities/Icon'; class SecretUserListNew extends Component { static propTypes = { + knownFriendList: PropTypes.array, secret: PropTypes.instanceOf(Secret), errors: PropTypes.object, dispatch: PropTypes.func, @@ -84,6 +85,7 @@ class SecretUserListNew extends Component { value={this.state.user.username} size="small" onChange={this.handleChange} + autoCompleteFromList={this.props.knownFriendList} error={this.props.errors.username} /> 0 + ? autoCompleteFromList.filter(elem => + elem.toLowerCase().includes(this.props.value.toLowerCase()) + ) + : []; + return (
{label && ( @@ -136,12 +154,30 @@ class Input extends Component { value={this.props.value} onChange={this.handleChange} placeholder={placeholder} - autoComplete={autoComplete ? null : 'new-password'} + autoComplete={autoComplete ? 'on' : 'off'} autoFocus={autoFocus} disabled={disabled} readOnly={readOnly} {...inputProps} /> + {!this.state.autoCompleteSelected && + filteredAutoCompleteList.length > 0 && ( + 0)} + > + + {filteredAutoCompleteList.slice(0, 5).map(elem => ( + this.handleAutoCompleteSelect(elem)} + > + {elem} + + ))} + + + )} {type === 'password' && (