short share urls
This commit is contained in:
29
src/share.js
29
src/share.js
@@ -4,6 +4,7 @@ import {changeIntervalSecs, onChartReady, setSymbol, widget} from "@/charts/char
|
||||
import {usePrefStore, useStore} from "@/store/store.js";
|
||||
import {lookupSymbol} from "@/charts/datafeed.js";
|
||||
import {track} from "@/track.js";
|
||||
import {socket} from "@/socket.js";
|
||||
|
||||
export async function getShareUrl() {
|
||||
const co = useChartOrderStore();
|
||||
@@ -26,18 +27,18 @@ export async function getShareUrl() {
|
||||
}
|
||||
const json = JSON.stringify(data)
|
||||
console.log('sharing data', json, data)
|
||||
const compressed = compressToEncodedURIComponent(json);
|
||||
const imageFile = await takeSnapshot()
|
||||
return import.meta.env.VITE_SERVER_URL+ `/share?i=${imageFile}&d=${compressed}`;
|
||||
const snapshot = await takeSnapshot()
|
||||
|
||||
const code = await new Promise((resolve)=>socket.emit('share', data, snapshot, resolve))
|
||||
if (code===null) return null
|
||||
|
||||
return import.meta.env.VITE_SHARE_URL+ '/share/'+code;
|
||||
}
|
||||
|
||||
export function loadShareUrl() {
|
||||
const urlParams = new URLSearchParams(window.location.search);
|
||||
const dataStr = urlParams.get('d');
|
||||
if (!dataStr) return
|
||||
const json = decompressFromEncodedURIComponent(dataStr);
|
||||
const data = JSON.parse(json);
|
||||
export async function loadShareUrl(code) {
|
||||
const data = await new Promise((resolve)=>socket.emit('shared', code, resolve))
|
||||
console.log('loaded shared orders data', data)
|
||||
if (data===null) return
|
||||
const co = useChartOrderStore();
|
||||
const s = useStore()
|
||||
const ticker = `${data.chainId}|${data.symbol.route.exchange}|${data.symbol.base.a}|${data.symbol.quote.a}|${data.symbol.route.fee}`;
|
||||
@@ -50,7 +51,9 @@ export function loadShareUrl() {
|
||||
const prefs = usePrefStore()
|
||||
prefs.selectedSymbol = ticker
|
||||
for (const order of data.orders) {
|
||||
// force amount to be zero so that the user MUST enter a size before confirming the placement
|
||||
order.amount = 0
|
||||
order.amountIsTokenA = true
|
||||
order.valid = false
|
||||
}
|
||||
co.orders = data.orders
|
||||
@@ -65,11 +68,5 @@ export function loadShareUrl() {
|
||||
|
||||
export async function takeSnapshot() {
|
||||
const screenshotCanvas = await widget.takeClientScreenshot();
|
||||
const image = await new Promise((resolve) => screenshotCanvas.toBlob(resolve));
|
||||
const response = await fetch(import.meta.env.VITE_SERVER_URL + '/snapshot', {
|
||||
method: 'PUT',
|
||||
body: image,
|
||||
credentials: 'same-origin',
|
||||
});
|
||||
return response.text()
|
||||
return await new Promise((resolve) => screenshotCanvas.toBlob(resolve));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user