Giter Club home page Giter Club logo

react-explorer's Introduction

File manager written in TypeScript & React

Build Status

React-Explorer

Features

  • Split-view window
  • Tabs support
  • Fully keyboard controlled
  • Fully localized (French & English available)
  • Dark Mode with automatic detection (macOS Mojave)
  • Open a terminal from any folder
  • Plugin-based: local supported for now, ftp in the works
  • WSL detection on Windows

Feature tour

Dark theme automatic detection (macOS Mojave)

React-Explorer will automatically switch to dark-theme when it's detected:

dark-theme

Create and read folder

By pressing ctrl (Linux/Win) or cmd the folder you create will be automatically read:

create-read-folder

Create nested folders

You can create several folders at once by separating them with a forward-slash:

nested-folders

Quick access to parent folders

By right-clicking on a tab's icon you can quickly get access to the parents of the currend folder:

parent-folders

WSL support

React-Explorer will automatically detect and show the list of Linux distributions installed using WSL on Windows:

parent-folders

Requirements

React-Explorer works on any modern Windows, Mac or Linux computer.

Building for local development

In order to build React-Explorer you need to have installed nodejs.

Once installed, building React-Explorer is as easy as typing:

npm install && npm run build

This will build a development package.

In order to run in locally without having to create a native executable, you can then type:

npx electron ./build/main.js

Building binary packages

In order to build binary packages, simply type the following:

npm run dist

This will build packaged binaries of React Explorer into the dist folder for every supported platform.

React-Explorer can also be built for a single patform. For example, to build only the Windows binaries, type:

npm run dist-win

Localization

React-Explorer is fully localized using .json files. Right now, English and French are available.

Adding a new language to React-Explorer is easy: simply duplicate one of the file found in src/locale/lang directory.

The new file should have the name code.json where code is a valid language code, for example: ja.json to add support for Japanese.

Tests

Unit testing

React-Explorer has both unit tests (using Jest) and end to end tests (using Cypress).

To run unit tests simply type:

npm test

This will start Jest and run every spec files found in src. Every test file can be found next to the component it is testing.

End to End testing

End to end tests are using Cypress and are in the separate e2e directory. You must install & configure Cypress before running E2E tests. This needs to be done one once using the following commands:

cd e2e && npm install && cd ..

The first time you run the tests, you also need to install cypress dependencies:

npm install

Since end to end tests need to run Electron-Explorer outside of Electron, a special build needs to be created that stubs some Electron APIs. To create this build, simply type:

npm run build

This will create a new Electron-Explorer in the build-e2e directory.

You may also type npm run watch if you want to rebuild automatically the e2e build after a change has been detected inside the sources.

For React-Explorer to run without Electron, a local webserver needs to be started before running the tests:

npm run server

Now, simply type: npm run cypress:run or npm run cypress:open.

How to develop a new Plugin

React-Explorer has been written so that it can easily be extended using plugins.

As a starting point you may use the FsGeneric skeleton.

Acknowledgments

React-Explorer makes use of the following tools/components:

Licence

React-Explorer is licenced under the MIT licence.

react-explorer's People

Contributors

warpdesign avatar dependabot[bot] avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.