Files
Polaris/static/assets/js/apps.js
T
2024-01-03 18:46:27 +00:00

40 lines
1.2 KiB
JavaScript

import { createViewPage, isValidURL } from './utils.js';
import PolarisError from './error.js';
import effects from './effects.js';
const load = () => fetch('/api/apps').then(res => res.json()).then(apps => {
apps.forEach(app => {
const el = document.createElement('div');
el.classList = 'app';
el.innerHTML = `<img src='${app.image}'><h3>${app.name}</h3>`;
document.querySelector('.apps').appendChild(el);
effects.hoverTilt({
max: 8,
perspective: 1000,
scale: 1.05,
speed: 800,
easing: 'cubic-bezier(.03,.98,.52,.99)'
}, el);
el.addEventListener('click', async () => {
document.body.style.opacity = '0.7';
setTimeout(() => {
if (isValidURL(app.target)) createViewPage({
target: app.target,
title: app.name,
proxied: true
});
else createViewPage({
target: app.target,
title: app.name
});
}, 500);
});
});
}).catch(e => new PolarisError('Failed to load Apps'));
export default {
load
};