Merge branch 'master' into idk

This commit is contained in:
ThinLiquid 2023-10-17 22:52:54 +01:00 committed by GitHub
commit e7e13848fd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 30 additions and 37 deletions

View file

@ -13,20 +13,20 @@
[![build](https://github.com/Flow-Works/FlowOS-2.0/actions/workflows/build.yml/badge.svg)](https://github.com/Flow-Works/FlowOS-2.0/actions/workflows/build.yml)
<br>
<i>The future of Flow OS</i>
<i>The future of FlowOS</i>
<br>
<a href="https://docs.flow-works.me"><strong>Read the docs »</strong></a>
<br>
</div>
## What is Flow OS?
## What is FlowOS?
Flow OS is a web OS proxy made for the Titanium Network 2023 Proxathon. It's extremly customizable with an API to make your own apps, themes, and modules.
FlowOS is a web OS proxy made for the Titanium Network 2023 Proxathon. It's extremly customizable with an API to make your own apps, themes, and modules.
## Getting Started
To run Flow OS on your local machine, you need Node.js 16 or above.
To run FlowOS on your local machine, you need Node.js 16 or above.
1. Clone the repository
```bash
@ -44,7 +44,7 @@ npm run serve
## Made with
Flow OS is made with the following software:
FlowOS is made with the following software:
* [Filer](https://github.com/filerjs/filer)
* [Prism Code Editor](https://github.com/FIameCaster/prism-code-editor)
* [Vite](https://vitejs.dev)

View file

@ -34,7 +34,7 @@ export default class EditorApp implements App {
})
if (data != null) {
win.setTitle('Editor - ' + data.path)
win.setTitle(`Editor - ${data.path}`)
win.content.style.display = 'flex'
win.content.style.flexDirection = 'column'
@ -99,34 +99,30 @@ export default class EditorApp implements App {
const fileBtn = win.content.querySelector('#file-open')
const editBtn = win.content.querySelector('#edit-open')
const toggleDropdown = function (id: string): void {
const toggleDropdown = (id: string): void => {
const el = win.content.querySelector(`#${id}`)
el?.classList.toggle('show')
}
fileBtn?.addEventListener('click', function (e) {
fileBtn?.addEventListener('click', (e) => {
e.stopPropagation()
toggleDropdown('file')
})
editBtn?.addEventListener('click', function (e) {
editBtn?.addEventListener('click', (e) => {
e.stopPropagation()
toggleDropdown('edit')
})
win.content.addEventListener('click', function () {
const file = win.content.querySelector('#file')
const edit = win.content.querySelector('#edit')
if (file !== null) {
win.content.addEventListener('click', () => {
const file = (win.content.querySelector('#file') as HTMLElement)
const edit = (win.content.querySelector('#edit') as HTMLElement)
if (file.classList.contains('show')) {
toggleDropdown('file')
}
}
if (edit !== null) {
if (edit.classList.contains('show')) {
toggleDropdown('edit')
}
}
})
const value = (await window.fs.promises.readFile(data.path)).toString()

View file

@ -39,22 +39,22 @@ export default class FilesApp implements App {
if (back !== '<i class=\'bx bx-arrow-to-left\'></i>') {
(win.content.querySelector('.back') as HTMLElement).onclick = async () => {
if (dir.split('/')[1] === dir.replace('/', '')) {
await setDir('/' + dir.split('/')[0])
await setDir(`/${dir.split('/')[0]}`)
} else {
await setDir('/' + dir.split('/')[1])
await setDir(`/${dir.split('/')[1]}`)
}
}
}
(win.content.querySelector('.file') as HTMLElement).onclick = async () => {
const title: string = prompt('Enter file name') ?? 'new-file.txt'
await window.fs.promises.open(dir + '/' + title, 'w')
await window.fs.promises.open(`${dir}/${title}`, 'w')
await setDir(dir)
}
(win.content.querySelector('.folder') as HTMLElement).onclick = async () => {
const title: string = prompt('Enter folder name') ?? 'new-folder'
await window.fs.promises.mkdir(dir + '/' + title)
await window.fs.promises.mkdir(`${dir}/${title}`)
await setDir(dir)
}

View file

@ -27,7 +27,9 @@ class StatusBar {
add (item: StatusItem): void {
if (this.items.some(x => x.meta.id === item.meta.id)) {
console.error(`Unable to register tool; ${item.meta.id} is already registered.`)
} else {
return
}
const element = document.createElement('div')
element.setAttribute('data-toolbar-id', item.meta.id)
@ -36,7 +38,6 @@ class StatusBar {
item.run(element)
}
}
}
export default StatusBar

View file

@ -185,11 +185,7 @@ class WM {
const max = Math.max(...indexes)
if (max === -Infinity) {
return 0
} else {
return max
}
return max === -Infinity ? 0 : max
}
createWindow (config: FlowWindowConfig): FlowWindow {