forked from tanner/qotnews
		
	Abort previous search requests
This commit is contained in:
		| @@ -3,6 +3,7 @@ | ||||
|   "version": "0.1.0", | ||||
|   "private": true, | ||||
|   "dependencies": { | ||||
|     "abort-controller": "^3.0.0", | ||||
|     "localforage": "^1.7.3", | ||||
|     "moment": "^2.24.0", | ||||
|     "query-string": "^6.8.3", | ||||
|   | ||||
| @@ -2,6 +2,7 @@ import React from 'react'; | ||||
| import { Link } from 'react-router-dom'; | ||||
| import { Helmet } from 'react-helmet'; | ||||
| import { sourceLink, infoLine } from './utils.js'; | ||||
| import AbortController from 'abort-controller'; | ||||
|  | ||||
| class Results extends React.Component { | ||||
| 	constructor(props) { | ||||
| @@ -12,18 +13,28 @@ class Results extends React.Component { | ||||
| 			error: false, | ||||
| 		}; | ||||
|  | ||||
| 		this.controller = null; | ||||
| 	} | ||||
|  | ||||
| 	performSearch = () => { | ||||
| 		if (this.controller) { | ||||
| 			this.controller.abort(); | ||||
| 		} | ||||
|  | ||||
| 		this.controller = new AbortController(); | ||||
| 		const signal = this.controller.signal; | ||||
|  | ||||
| 		const search = this.props.location.search; | ||||
| 		fetch('/api/search' + search) | ||||
| 		fetch('/api/search' + search, { method: 'get', signal: signal }) | ||||
| 			.then(res => res.json()) | ||||
| 			.then( | ||||
| 				(result) => { | ||||
| 					this.setState({ stories: result.results }); | ||||
| 				}, | ||||
| 				(error) => { | ||||
| 					this.setState({ error: true }); | ||||
| 					if (error.message !== 'The operation was aborted. ') { | ||||
| 						this.setState({ error: true }); | ||||
| 					} | ||||
| 				} | ||||
| 			); | ||||
| 	} | ||||
|   | ||||
| @@ -1395,6 +1395,13 @@ abbrev@1: | ||||
|   resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" | ||||
|   integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== | ||||
|  | ||||
| abort-controller@^3.0.0: | ||||
|   version "3.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" | ||||
|   integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== | ||||
|   dependencies: | ||||
|     event-target-shim "^5.0.0" | ||||
|  | ||||
| accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: | ||||
|   version "1.3.7" | ||||
|   resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" | ||||
| @@ -3652,6 +3659,11 @@ etag@~1.8.1: | ||||
|   resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" | ||||
|   integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= | ||||
|  | ||||
| event-target-shim@^5.0.0: | ||||
|   version "5.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" | ||||
|   integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== | ||||
|  | ||||
| eventemitter3@^3.0.0: | ||||
|   version "3.1.2" | ||||
|   resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user