25 lines
720 B
JavaScript
25 lines
720 B
JavaScript
import { mapValues } from 'lodash';
|
|
|
|
export const PRELOAD_IMPORT = 'PRELOAD_IMPORT';
|
|
|
|
// https://git.pleroma.social/pleroma/pleroma-fe/-/merge_requests/1176/diffs
|
|
const decodeUTF8Base64 = (data) => {
|
|
const rawData = atob(data);
|
|
const array = Uint8Array.from(rawData.split('').map((char) => char.charCodeAt(0)));
|
|
const text = new TextDecoder().decode(array);
|
|
return text;
|
|
};
|
|
|
|
const decodeData = data =>
|
|
mapValues(data, base64string =>
|
|
JSON.parse(decodeUTF8Base64(base64string)));
|
|
|
|
export function preload() {
|
|
const element = document.getElementById('initial-results');
|
|
const data = element ? JSON.parse(element.textContent) : {};
|
|
|
|
return {
|
|
type: PRELOAD_IMPORT,
|
|
data: decodeData(data),
|
|
};
|
|
}
|