-
Notifications
You must be signed in to change notification settings - Fork 22
/
snapshot.js
94 lines (65 loc) · 2.4 KB
/
snapshot.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
import * as hellojs from 'hellojs';
import {HEADER_HEIGHT} from '../shared/constants';
import {playCameraSound} from '../shared/audio';
import AnnotatePage from './annotate';
import SharePage from './share';
import {PAGES} from '../shared/constants';
import {showPage, showPrompt} from '../shared/helpers';
const hello = hellojs.default;
const PAGE_NAME = PAGES.SNAPSHOT;
let backBtn = document.getElementById('btn-back-snapshot');
let tweetButton = document.getElementById('btn-share-twitter');
let drawingCanvas = document.getElementById('canvas-draw');
let saveCanvas = document.getElementById('canvas-save');
let saveImage = document.getElementById('image-save');
let saveCtx = saveCanvas.getContext('2d');
let cameraCanvas;
function initSave() {
// May have been swapped out after initial app load
cameraCanvas = document.getElementById('canvas-camera');
saveCanvas.width = cameraCanvas.width;
saveCanvas.height = cameraCanvas.height;
saveCanvas.style.width = cameraCanvas.style.width;
saveCanvas.style.height = cameraCanvas.style.height;
saveImage.width = drawingCanvas.width;
saveImage.height = drawingCanvas.height;
saveCtx.font = '16px Arial';
saveCtx.fillStyle = '#fff';
}
function initControls() {
tweetButton.addEventListener('click', () => {
hello('twitter').login()
.then(res => {
console.log('Logged into Twitter', res);
SharePage.show({username: res.authResponse.screen_name});
}, err => {
console.error('Error logging in to Twitter', err);
});
});
backBtn.addEventListener('click', () => {
AnnotatePage.show();
});
}
export default {
init: function () {
initControls();
},
show: function () {
playCameraSound();
initSave();
// Copy the other canvases onto a single canvas for saving
saveCtx.drawImage(cameraCanvas, 0, 0, saveCanvas.width, saveCanvas.height);
saveCtx.drawImage(drawingCanvas, 0, 0, saveCanvas.width, saveCanvas.height);
// Add the URL at the bottom
saveCtx.fillText('snapw.at', saveCanvas.width - 72, saveCanvas.height - 10);
saveImage.src = saveCanvas.toDataURL('image/png');
saveCanvas.style.display = 'none';
saveImage.style.display = 'block';
showPage(PAGE_NAME);
// TEMP trying again to save automatically
// let link = document.createElement('a');
// link.href = '/download-image';
// link.click();
fetch('/download-image');
}
};