Allow owner to update content url (#3083)
This commit is contained in:
		
							parent
							
								
									5336f65cf5
								
							
						
					
					
						commit
						d47c6db713
					
				| @ -108,14 +108,19 @@ | ||||
|   background: #fcc; | ||||
| } | ||||
| 
 | ||||
| .hashError { | ||||
| .hashError, .hashWarning, .hashOk { | ||||
|   padding-top: 0.5em; | ||||
|   color: #f66; | ||||
|   text-align: center; | ||||
| } | ||||
| 
 | ||||
| .hashOk { | ||||
|   padding-top: 0.5em; | ||||
|   opacity: 0.5; | ||||
|   text-align: center; | ||||
| .hashError { | ||||
|   color: #f66; | ||||
| } | ||||
| 
 | ||||
| .hashWarning { | ||||
|   color: #f80; | ||||
| } | ||||
| 
 | ||||
| .hashOk { | ||||
|   opacity: 0.5; | ||||
| } | ||||
|  | ||||
| @ -29,11 +29,13 @@ const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000'; | ||||
| 
 | ||||
| export default class Application extends Component { | ||||
|   state = { | ||||
|     fromAddress: null, | ||||
|     loading: true, | ||||
|     url: '', | ||||
|     urlError: null, | ||||
|     contentHash: '', | ||||
|     contentHashError: null, | ||||
|     contentHashOwner: null, | ||||
|     registerBusy: false, | ||||
|     registerError: null, | ||||
|     registerState: '' | ||||
| @ -63,7 +65,14 @@ export default class Application extends Component { | ||||
|   } | ||||
| 
 | ||||
|   renderPage () { | ||||
|     const { registerBusy, url, urlError, contentHash, contentHashError } = this.state; | ||||
|     const { fromAddress, registerBusy, url, urlError, contentHash, contentHashError, contentHashOwner } = this.state; | ||||
| 
 | ||||
|     let hashClass = null; | ||||
|     if (contentHashError) { | ||||
|       hashClass = contentHashOwner !== fromAddress ? styles.hashError : styles.hashWarning; | ||||
|     } else { | ||||
|       hashClass = styles.hashOk; | ||||
|     } | ||||
| 
 | ||||
|     return ( | ||||
|       <div className={ styles.container }> | ||||
| @ -81,7 +90,7 @@ export default class Application extends Component { | ||||
|                 className={ urlError ? styles.error : null } | ||||
|                 onChange={ this.onChangeUrl } /> | ||||
|             </div> | ||||
|             <div className={ contentHashError ? styles.hashError : styles.hashOk }> | ||||
|             <div className={ hashClass }> | ||||
|               { contentHashError || contentHash } | ||||
|             </div> | ||||
|             { registerBusy ? this.renderProgress() : this.renderButtons() } | ||||
| @ -92,7 +101,7 @@ export default class Application extends Component { | ||||
|   } | ||||
| 
 | ||||
|   renderButtons () { | ||||
|     const { accounts, fromAddress, url, urlError, contentHashError } = this.state; | ||||
|     const { accounts, fromAddress, url, urlError, contentHashError, contentHashOwner } = this.state; | ||||
|     const account = accounts[fromAddress]; | ||||
| 
 | ||||
|     return ( | ||||
| @ -105,7 +114,7 @@ export default class Application extends Component { | ||||
|         </div> | ||||
|         <Button | ||||
|           onClick={ this.onClickRegister } | ||||
|           disabled={ !!contentHashError || !!urlError || url.length === 0 }>register url</Button> | ||||
|           disabled={ (!!contentHashError && contentHashOwner !== fromAddress) || !!urlError || url.length === 0 }>register url</Button> | ||||
|       </div> | ||||
|     ); | ||||
|   } | ||||
| @ -163,9 +172,9 @@ export default class Application extends Component { | ||||
|   } | ||||
| 
 | ||||
|   onClickRegister = () => { | ||||
|     const { url, urlError, contentHash, contentHashError, fromAddress, instance } = this.state; | ||||
|     const { url, urlError, contentHash, contentHashError, contentHashOwner, fromAddress, instance } = this.state; | ||||
| 
 | ||||
|     if (!!contentHashError || !!urlError || url.length === 0) { | ||||
|     if ((!!contentHashError && contentHashOwner !== fromAddress) || !!urlError || url.length === 0) { | ||||
|       return; | ||||
|     } | ||||
| 
 | ||||
| @ -243,13 +252,17 @@ export default class Application extends Component { | ||||
| 
 | ||||
|         instance.entries | ||||
|           .call({}, [contentHash]) | ||||
|           .then(([accountSlashRepo, commit, owner]) => { | ||||
|             console.log('lookupHash', accountSlashRepo, api.util.bytesToHex(commit), owner); | ||||
|           .then(([accountSlashRepo, commit, contentHashOwner]) => { | ||||
|             console.log('lookupHash', accountSlashRepo, api.util.bytesToHex(commit), contentHashOwner); | ||||
| 
 | ||||
|             if (owner !== ZERO_ADDRESS) { | ||||
|               this.setState({ contentHashError: contentHash, contentHash: null }); | ||||
|             if (contentHashOwner !== ZERO_ADDRESS) { | ||||
|               this.setState({ | ||||
|                 contentHashError: contentHash, | ||||
|                 contentHashOwner, | ||||
|                 contentHash | ||||
|               }); | ||||
|             } else { | ||||
|               this.setState({ contentHashError: null, contentHash }); | ||||
|               this.setState({ contentHashError: null, contentHashOwner, contentHash }); | ||||
|             } | ||||
|           }); | ||||
|       }) | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user