Skip to content
This repository has been archived by the owner on Oct 7, 2022. It is now read-only.

bootrino/reactoxide

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
September 28, 2021 16:33
September 28, 2021 16:33

React OxIDE

React Oxide is a simple code editor that you can add to your ReactJS projects.

YouTube overview at: https://youtu.be/OmxKAWeN38I

Live demo at: https://www.reactoxide.com/

Project status:

Created 28 Sep 2021 by Andrew Stuart andrew.stuart@supercoders.com.au

License: MIT

You are welcome to post questions in the github issues but don't expect an answer - I may or may not be interested in reading/fixing issues.

Features:

  • Written in TypeScript
  • Monaco editor (the core of VSCode) https://microsoft.github.io/monaco-editor/
  • Tabs
  • File tree
  • File management features: new file/rename/delete/create folder/upload files
  • Compatible with WebDAV back ends
  • Bootstrap 5

Event driven React coding style:

This project uses eventemitter for communication between components. There is no state anywhere apart from component local state.

I don't know if this is a bad idea for some reason but it's done this way because I like the approach and find it makes things more simple and easy to understand.

If you modify this software, please follow the same Event Driven React coding style for consistency.

What's missing:

There's no error handling at all right now - if any file operation fails then there's no information given, it just goes splat.

There's no tests - and I'm not writing any - I made this project for me and I don't need tests.

Credits:

WebDAV back end:

React Oxide talks to a WebDAV back end.

There are plenty of webDAV servers around if you do a Google search you'll find some.

I downloaded this Python based WebDAV server and ran it locally with Python 3.9:

https://github.com/rexzhang/asgi-webdav

The command to start the webDAV server:

python3 -m asgi_webdav --host 0.0.0.0 --port 8000 --root-path .

username is username, password is password


IMPORTANT! WebDAV & CORS!!!!:

React Oxide needs CORS turned off

If you wanted to deploy React Oxide on the Internet, you would have to solve the CORS problem by putting your webDAV server behind a reverse proxy. I recommend Caddy but anything such as nginx can do the job.

During development I did not use a proxy server, instead I used MacOS Safari for my development because it has a simple menu option to switch off CORS on the Safari "Develop" menu:

It's a great pity Chrome and Firefox don't have an option to switch off CORS like Safari does.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published