()
| 665 | } |
| 666 | |
| 667 | private startClip(): void { |
| 668 | this.state.setState({ oneNoteApiResult: { status: Status.InProgress } }); |
| 669 | |
| 670 | this.storeLastClippedInformation(); |
| 671 | SaveToOneNoteLogger.logClip(this.state); |
| 672 | |
| 673 | let clipEvent = new Log.Event.PromiseEvent(Log.Event.Label.ClipToOneNoteAction); |
| 674 | |
| 675 | (new OneNoteSaveableFactory(this.state)).getSaveable().then((saveable) => { |
| 676 | let saveOptions: SaveToOneNoteOptions = { |
| 677 | page: saveable, |
| 678 | saveLocation: this.state.saveLocation, |
| 679 | progressCallback: this.updateClipSaveProgress.bind(this) |
| 680 | }; |
| 681 | |
| 682 | let saveToOneNote = new SaveToOneNote(this.state.userResult.data.user.accessToken); |
| 683 | saveToOneNote.save(saveOptions).then((responsePackage: OneNoteApi.ResponsePackage<any>) => { |
| 684 | let createPageResponse = Array.isArray(responsePackage) ? responsePackage[0] : responsePackage; |
| 685 | clipEvent.setCustomProperty(Log.PropertyName.Custom.CorrelationId, createPageResponse.request.getResponseHeader(Constants.HeaderValues.correlationId)); |
| 686 | |
| 687 | let numSuccessfulClips = this.state.numSuccessfulClips + 1; |
| 688 | Clipper.storeValue(ClipperStorageKeys.numSuccessfulClips, numSuccessfulClips.toString()); |
| 689 | this.state.setState({ |
| 690 | oneNoteApiResult: { data: createPageResponse.parsedResponse, status: Status.Succeeded }, |
| 691 | numSuccessfulClips: numSuccessfulClips, |
| 692 | showRatingsPrompt: RatingsHelper.shouldShowRatingsPrompt(this.state) |
| 693 | }); |
| 694 | }).catch((error: OneNoteApi.RequestError) => { |
| 695 | OneNoteApiUtils.logOneNoteApiRequestError(clipEvent, error); |
| 696 | this.state.setState({ oneNoteApiResult: { data: error, status: Status.Failed } }); |
| 697 | }).then(() => { |
| 698 | Clipper.logger.logEvent(clipEvent); |
| 699 | }); |
| 700 | }); |
| 701 | } |
| 702 | |
| 703 | private updateClipSaveProgress(numItemsCompleted: number, numItemsTotal: number): void { |
| 704 | this.state.setState({ |
no test coverage detected