Skip to content

Commit 21e4545

Browse files
authored
feat: redesign, first steps towards v1.0 (#669)
License: MIT Signed-off-by: Henrique Dias <[email protected]>
1 parent fb8b045 commit 21e4545

File tree

165 files changed

+11407
-6590
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

165 files changed

+11407
-6590
lines changed

.babelrc

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
1-
{
2-
"env": {
3-
"test": {
4-
"plugins": [ "istanbul" ]
5-
}
6-
},
1+
{
72
"presets": [
8-
"env",
9-
"stage-2",
10-
"react"
3+
"@babel/preset-env",
4+
"@babel/preset-react"
5+
],
6+
"plugins": [
7+
"@babel/plugin-transform-runtime"
118
]
12-
}
9+
}

.compilerc

Lines changed: 0 additions & 38 deletions
This file was deleted.

.eslintignore

Lines changed: 0 additions & 1 deletion
This file was deleted.

.eslintrc.js

Lines changed: 0 additions & 7 deletions
This file was deleted.

.gitignore

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,7 @@
11
node_modules
2-
build
3-
release
42
out
5-
*.log
6-
*.lock
7-
package-lock.json
83
dist
9-
*.zip
10-
coverage
11-
.nyc_output
12-
coverage.lcov
13-
.cache
4+
.cache
5+
config.gypi
6+
src/hooks/webui/app
7+
src/icons/*.js

.travis.yml

Lines changed: 0 additions & 9 deletions
This file was deleted.

CONTRIBUTING.md

Lines changed: 0 additions & 43 deletions
This file was deleted.

LICENSE

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
The MIT License (MIT)
22

3-
Copyright (c) 2016 Protocol Labs, Inc.
3+
Copyright (c) 2018 Protocol Labs, Inc.
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal
@@ -19,4 +19,3 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1919
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
2020
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2121
SOFTWARE.
22-

README.md

Lines changed: 16 additions & 150 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,34 @@
1-
<h1 align="center">
2-
IPFS Desktop
3-
</h1>
1+
# IPFS Desktop
42

5-
![ipfs-desktop-screenshot](https://user-images.githubusercontent.com/58871/34874493-0d306e5a-f791-11e7-94cb-5ac5a0d225b9.png)
3+
> A desktop client for [IPFS](https://ipfs.io).
4+
>
5+
> You don't need the command line to run an IPFS node. Just install IPFS Desktop and have all the power of IPFS in your hands. Powered by [Web UI](https://github.com/ipfs-shipyard/ipfs-webui).
66
7-
<p align="center">
8-
<a href="http://protocol.ai"><img src="https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square" /></a>
9-
<a href="http://ipfs.io/"><img src="https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square" /></a>
10-
<a href="http://webchat.freenode.net/?channels=%23ipfs"><img src="https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square" /></a>
11-
</p>
7+
![IPFS Desktop](https://user-images.githubusercontent.com/5447088/48506134-a8106d80-e840-11e8-94bf-2108f2354dd1.png)
128

13-
<p align="center">
14-
<a href="https://travis-ci.org/ipfs-shipyard/ipfs-desktop"><img src="https://img.shields.io/travis/ipfs-shipyard/ipfs-desktop.svg?style=flat-square" /></a>
15-
<a href="https://david-dm.org/ipfs-shipyard/ipfs-desktop"><img src="https://david-dm.org/ipfs-shipyard/ipfs-desktop.svg?style=flat-square" /></a>
16-
<a href="https://codecov.io/gh/ipfs-shipyard/ipfs-desktop"><img src="https://img.shields.io/codecov/c/github/ipfs-shipyard/ipfs-desktop.svg?style=flat-square"></a>
17-
<a href="https://github.com/feross/standard"><img src="https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat-square"></a>
18-
<a href="https://github.com/RichardLitt/standard-readme"><img src="https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square" /></a>
19-
</p>
9+
[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](https://protocol.ai/)
10+
[![](https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square)](http://ipfs.io/)
11+
[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs)
12+
[![](https://david-dm.org/ipfs-shipyard/ipfs-desktop.svg?style=flat-square)](https://david-dm.org/ipfs-shipyard/ipfs-desktop)
2013

21-
<h3 align="center">
22-
A menubar <a href="https://ipfs.io">IPFS</a> application to get you on the Distributed Web!
23-
</h3>
14+
IPFS Desktop allows you to run your IFPS Node on your machine without having to bother with command line tools. With it, you the power of [Web UI](https://github.com/ipfs-shipyard/ipfs-webui) on tip of your hands plus a handful of shortcuts you can find on settings.
2415

25-
IPFS Desktop allows you to run your IPFS node on your machine without having to bother with command line tools. You can manage your node, add your files, easily change the settings... [everything](#features) from just one interface.
16+
⚠ This version is experimental and can change. We're still improving it. If you find a bug, please [report it to us](https://github.com/ipfs-shipyard/ipfs-desktop/issues/new).
2617

2718
## Table of Contents
2819

2920
- [Install](#install)
3021
- [Usage](#usage)
31-
- [Features](#features)
32-
- [Developer Guide](#developer-guide)
3322
- [Contribute](#contribute)
3423

35-
## Install a Release
24+
## Install
3625

37-
### Go to the [*latest release*](https://github.com/ipfs-shipyard/ipfs-desktop/releases/latest) page and download IPFS Desktop for your OS.
38-
39-
40-
Note for **Debian** and **Ubuntu** users: starting with apt 1.1 (Ubuntu 16.04, Debian Stretch) `apt install` allows local files:
41-
```
42-
sudo apt install ./ipfs-desktop*.deb
43-
```
26+
Go to the [*latest release*](https://github.com/ipfs-shipyard/ipfs-desktop/releases/latest) page and download IPFS Desktop for your OS.
4427

4528
### Install from Source
4629

47-
If you're interested in developing IPFS Desktop, you can also install it from source...
48-
49-
You will need [Node.js](https://nodejs.org/en/) `>=6.0.0` and
50-
need [npm](https://npmjs.org) `>=3.0` installed.
51-
52-
On macOS you may also need Xcode command line tools, if you haven't already, do so by:
53-
54-
```bash
55-
xcode-select --install
56-
sudo xcode-select --switch /Library/Developer/CommandLineTools
57-
```
30+
To install it from source you need [Node.js](https://nodejs.org/en/) `>=10.4.0` and
31+
need [npm](npmjs.org) `>=6.1.0` installed. This uses [`node-gyp`](https://github.com/nodejs/node-gyp) so **you must take a look** at their [platform specific dependencies](https://github.com/nodejs/node-gyp#installation).
5832

5933
Then the follow the steps below to clone the source code, install the dependancies and run it the app:
6034

@@ -67,114 +41,6 @@ npm start
6741

6842
The IPFS Desktop app will launch and should appear in your OS menu bar.
6943

70-
## Usage
71-
72-
Click on the IPFS icon in the menubar to open the app.
73-
74-
| See IPFS Node Info | Share Files |
75-
|:---:|:---:|
76-
| ![](https://ipfs.io/ipfs/QmPBMMG4HUB1U1kLfwWvr6zQhGMcuvWYtGEFeTqBjG2jxW) | ![](https://ipfs.io/ipfs/QmSL8L5kMevXWDZguBwiwDVsQX6qkRFt1yTCDdnA1LmyR9) |
77-
78-
| | See connected Peers |
79-
|:---:|:---:|
80-
| | ![](https://ipfs.io/ipfs/QmW1SWU1aALf8sqSvEFGUtzK8oqX9BGNA6r4bzS8MPg94B) |
81-
82-
## Features
83-
84-
| Stats and Information | Files | Other |
85-
|-----------------------|-------------------------|---------------------------------|
86-
| Peer ID | Add by drag'n'drop | Easy access to the WebUI |
87-
| Location | Add entire directories | Easy access to Node Settings |
88-
| Addresses | Delete files | Optional launch on startup |
89-
| Public Key | Copy and share links | Auto add screenshots |
90-
| Repository Size | | Download copied hash |
91-
| Bandwidth Usage | |
92-
| Down/Up Speeds | |
93-
| Peers | |
94-
95-
## Developer Guide
96-
97-
### File Structure
98-
99-
All of the important files of this application are into `src` folder, which can be seen as the following tree:
100-
101-
```
102-
├───controls
103-
├───fonts Static font files.
104-
├───img Static image assets.
105-
├───js
106-
│ ├───components
107-
│ │ ├───logic Reusable and stateful components. They have 'state' to track.
108-
│ │ └───view Reusable and stateless components. They are written as stateless functional components.
109-
│ |───panes A pane is a larger component to be used within screens.
110-
| └───screens A screen is the everything visible at a given point in time inside a single window.
111-
├───styles Stylesheets in LESS format.
112-
├───utils Utilitarian classes and functions.
113-
|───views HTML view files.
114-
└───index.js Main entry point of the application.
115-
```
116-
117-
### How to add an new pane
118-
119-
Start by creating a new file inside `./src/js/panes` with the following bootstrap content. For more information about each piece, take a look at the [`Header`](./src/js/components/view/header.js) and [`Footer`](./src/js/components/view/footer.js) components.
120-
121-
```js
122-
import React from 'react'
123-
124-
import Pane from '../components/view/pane'
125-
import Header from '../components/view/header'
126-
import Footer from '../components/view/footer'
127-
128-
export default function MyPane {
129-
return (
130-
<Pane>
131-
<Header title='The title of your pane' />
132-
133-
<div className='main'>
134-
<p>The body of your pane</p>
135-
</div>
136-
137-
<Footer>
138-
<p>The footer of your pane</p>
139-
</Footer>
140-
</Pane>
141-
)
142-
}
143-
}
144-
```
145-
146-
Then, you'll have to import the file and create an entry on `panes` array on [`./src/js/screens/menu.js`](./src/js/components/view/icon.js) with a content similar to this one:
147-
148-
```
149-
{
150-
id: 'my-pane-id', // A simple slug to identify your pane.
151-
title: 'Title', // To be shown in the menu.
152-
icon: 'ipfs' // A themify icon ID (themify.me/themify-icons)
153-
}
154-
```
155-
156-
Now, you already have your pane created and its menu entry. Although, it you click on it, you'll probably get an error message since you aren't really routing that path to it. On the same file, go to `_getRouteScreen` function, and add a `case` for your pane on the `switch`. The value must be the same as the `id` you put on the menu entry.
157-
158-
### Components
159-
160-
The components are classes exported with CamelCase names. The corresponding files have the associated class name with hyphen-separated-words. So, e.g., `simple-stat.js` exports a class named `SimpleStat`.
161-
162-
#### [Stateless Components](./src/js/components/view)
163-
164-
+ [**Button**](./src/js/components/view/button.js) is a simple button with text.
165-
+ [**CheckboxBlock**](./src/js/components/view/checkbox-block.js) is like an `InfoBlock`, but with a checkbox attached to it.
166-
+ [**FileBlock**](./src/js/components/view/file-block.js) is used within a file list to describe a file with a button to copy its link.
167-
+ [**Footer**](./src/js/components/view/footer.js) is the footer of a pane.
168-
+ [**Header**](./src/js/components/view/header.js) is the header of a pane.
169-
+ [**Heartbeat**](./src/js/components/view/heartbeat.js) displays an heartbeat-like animation with the IPFS logo.
170-
+ [**IconButton**](./src/js/components/view/icon-button.js) is a button with an icon inside.
171-
+ [**IconDropdownList**](./src/js/components/view/icon-dropdown-list.js) is a dropdown list with an icon.
172-
+ [**Icon**](./src/js/components/view/icon.js) shows an icon.
173-
+ [**InfoBlock**](./src/js/components/view/info-block.js) shows a block of information (used on node info pane).
174-
+ [**KeyCombo**](./src/js/components/view/key-combo.js) is a key combination.
175-
+ [**Key**](./src/js/components/view/key.js) is a key.
176-
+ [**MenuOption**](./src/js/components/view/menu-option.js) is a menu option to show within a menu bar.
177-
17844
## Contribute
17945

18046
[![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/contributing.md)
@@ -185,4 +51,4 @@ This repository falls under the IPFS [Code of Conduct](https://github.com/ipfs/c
18551

18652
## License
18753

188-
[MIT 2016 Protocol Labs, Inc.](./LICENSE)
54+
[MIT Protocol Labs, Inc.](./LICENSE)
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)