Skip to content

Commit c5e50db

Browse files
author
Ives van Hoorne
committed
Merge branch 'master' into playground
2 parents 3bc7b11 + af067e8 commit c5e50db

File tree

61 files changed

+1292
-328
lines changed

Some content is hidden

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

61 files changed

+1292
-328
lines changed

.all-contributorsrc

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -467,6 +467,17 @@
467467
"contributions": [
468468
"code"
469469
]
470+
},
471+
{
472+
"login": "mdxprograms",
473+
"name": "Josh Waller",
474+
"avatar_url": "https://avatars1.githubusercontent.com/u/1900735?v=4",
475+
"profile": "https://www.joshwaller.me",
476+
"contributions": [
477+
"bug",
478+
"code",
479+
"doc"
480+
]
470481
}
471482
]
472483
}

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# [CodeSandbox](https://codesandbox.io) [![Chat](https://img.shields.io/badge/chat-on%20discord-7289da.svg)](https://discord.gg/KE3TbEZ) [![All Contributors](https://img.shields.io/badge/all_contributors-48-orange.svg?style=flat-square)](#contributors) [![Build Status](https://travis-ci.org/CompuIves/codesandbox-client.svg?branch=master)](https://travis-ci.org/CompuIves/codesandbox-client) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) [![first-timers-only Friendly](https://img.shields.io/badge/first--timers--only-friendly-blue.svg)](http://www.firsttimersonly.com/)
1+
# [CodeSandbox](https://codesandbox.io) [![Chat](https://img.shields.io/badge/chat-on%20discord-7289da.svg)](https://discord.gg/KE3TbEZ) [![All Contributors](https://img.shields.io/badge/all_contributors-49-orange.svg?style=flat-square)](#contributors) [![Build Status](https://travis-ci.org/CompuIves/codesandbox-client.svg?branch=master)](https://travis-ci.org/CompuIves/codesandbox-client) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) [![first-timers-only Friendly](https://img.shields.io/badge/first--timers--only-friendly-blue.svg)](http://www.firsttimersonly.com/)
22

33
An online code editor tailored for web applications.
44

@@ -43,5 +43,5 @@ Thanks goes to these wonderful people
4343
| [<img src="https://avatars3.githubusercontent.com/u/9488719?v=4" width="100px;"/><br /><sub><b>Frank Tan</b></sub>](https://github.com/tansongyang)<br />[💻](https://github.com/CompuIves/codesandbox-client/commits?author=tansongyang "Code") | [<img src="https://avatars0.githubusercontent.com/u/1650995?v=4" width="100px;"/><br /><sub><b>Bilal Budhani</b></sub>](https://bilalbudhani.com)<br />[💻](https://github.com/CompuIves/codesandbox-client/commits?author=BilalBudhani "Code") | [<img src="https://avatars3.githubusercontent.com/u/843342?v=4" width="100px;"/><br /><sub><b>El Juli</b></sub>](https://github.com/JulianMayorga)<br />[💻](https://github.com/CompuIves/codesandbox-client/commits?author=JulianMayorga "Code") | [<img src="https://avatars0.githubusercontent.com/u/13774309?v=4" width="100px;"/><br /><sub><b>Arthur Denner</b></sub>](https://github.com/arthurdenner)<br />[💻](https://github.com/CompuIves/codesandbox-client/commits?author=arthurdenner "Code") | [<img src="https://avatars3.githubusercontent.com/u/12954909?v=4" width="100px;"/><br /><sub><b>Radi Cho</b></sub>](https://github.com/RSG-Group)<br />[🐛](https://github.com/CompuIves/codesandbox-client/issues?q=author%3Aradi-cho "Bug reports") [💻](https://github.com/CompuIves/codesandbox-client/commits?author=radi-cho "Code") [🤔](#ideas-radi-cho "Ideas, Planning, & Feedback") | [<img src="https://avatars3.githubusercontent.com/u/679275?v=4" width="100px;"/><br /><sub><b>Xiaoyi Chen</b></sub>](https://twitter.com/chxy)<br />[💻](https://github.com/CompuIves/codesandbox-client/commits?author=xyc "Code") | [<img src="https://avatars3.githubusercontent.com/u/1215971?v=4" width="100px;"/><br /><sub><b>Gautam Arora</b></sub>](https://twitter.com/gautam)<br />[💻](https://github.com/CompuIves/codesandbox-client/commits?author=gautamarora "Code") [🤔](#ideas-gautamarora "Ideas, Planning, & Feedback") |
4444
| [<img src="https://avatars3.githubusercontent.com/u/6270048?v=4" width="100px;"/><br /><sub><b>Haroen Viaene</b></sub>](https://twitter.com/haroenv)<br />[💻](https://github.com/CompuIves/codesandbox-client/commits?author=haroenv "Code") [🎨](#design-haroenv "Design") | [<img src="https://avatars1.githubusercontent.com/u/293805?v=4" width="100px;"/><br /><sub><b>Nick Nisi</b></sub>](https://nicknisi.com)<br />[💻](https://github.com/CompuIves/codesandbox-client/commits?author=nicknisi "Code") | [<img src="https://avatars2.githubusercontent.com/u/9327315?v=4" width="100px;"/><br /><sub><b>Abhishek Jakhotiya</b></sub>](https://github.com/Jakhotiya)<br />[💻](https://github.com/CompuIves/codesandbox-client/commits?author=Jakhotiya "Code") [🐛](https://github.com/CompuIves/codesandbox-client/issues?q=author%3AJakhotiya "Bug reports") | [<img src="https://avatars2.githubusercontent.com/u/14299145?v=4" width="100px;"/><br /><sub><b>Tom Kühl</b></sub>](http://twitter.com/tomkuehl_)<br />[💻](https://github.com/CompuIves/codesandbox-client/commits?author=tomkuehl "Code") | [<img src="https://avatars2.githubusercontent.com/u/1086461?v=4" width="100px;"/><br /><sub><b>br1anchen</b></sub>](https://github.com/br1anchen)<br />[💻](https://github.com/CompuIves/codesandbox-client/commits?author=br1anchen "Code") | [<img src="https://avatars3.githubusercontent.com/u/11952174?v=4" width="100px;"/><br /><sub><b>Daniel Hsing</b></sub>](https://arthelon.github.io)<br />[💻](https://github.com/CompuIves/codesandbox-client/commits?author=Arthelon "Code") | [<img src="https://avatars2.githubusercontent.com/u/5403694?v=4" width="100px;"/><br /><sub><b>Maciej Kasprzyk</b></sub>](https://twitter.com/_maciejka)<br />[💻](https://github.com/CompuIves/codesandbox-client/commits?author=maciej-ka "Code") |
4545
| [<img src="https://avatars2.githubusercontent.com/u/596727?v=4" width="100px;"/><br /><sub><b>Robert Heessels</b></sub>](https://github.com/robertheessels)<br />[📖](https://github.com/CompuIves/codesandbox-client/commits?author=robertheessels "Documentation") | [<img src="https://avatars3.githubusercontent.com/u/772937?v=4" width="100px;"/><br /><sub><b>Ryan P. C. McQuen</b></sub>](https://ryanpcmcquen.org)<br />[💻](https://github.com/CompuIves/codesandbox-client/commits?author=ryanpcmcquen "Code") | [<img src="https://avatars3.githubusercontent.com/u/613805?v=4" width="100px;"/><br /><sub><b>Chris</b></sub>](http://chrisrjones.com)<br />[💻](https://github.com/CompuIves/codesandbox-client/commits?author=ipatch "Code") | [<img src="https://avatars3.githubusercontent.com/u/595469?v=4" width="100px;"/><br /><sub><b>Drew Smith</b></sub>](https://github.com/drewsmith)<br />[💻](https://github.com/CompuIves/codesandbox-client/commits?author=drewsmith "Code") | [<img src="https://avatars2.githubusercontent.com/u/12481?v=4" width="100px;"/><br /><sub><b>Eric Berry</b></sub>](https://codesponsor.io)<br />[💻](https://github.com/CompuIves/codesandbox-client/commits?author=coderberry "Code") | [<img src="https://avatars1.githubusercontent.com/u/17228477?v=4" width="100px;"/><br /><sub><b>Hum4n01d</b></sub>](https://www.hum4n01d.me)<br />[💻](https://github.com/CompuIves/codesandbox-client/commits?author=Hum4n01d "Code") | [<img src="https://avatars3.githubusercontent.com/u/10888943?v=4" width="100px;"/><br /><sub><b>Malachi Willey</b></sub>](https://github.com/malwilley)<br />[💻](https://github.com/CompuIves/codesandbox-client/commits?author=malwilley "Code") |
46-
| [<img src="https://avatars0.githubusercontent.com/u/1820292?v=4" width="100px;"/><br /><sub><b>Michel Weststrate</b></sub>](https://twitter.com/mweststrate)<br />[💻](https://github.com/CompuIves/codesandbox-client/commits?author=mweststrate "Code") | [<img src="https://avatars0.githubusercontent.com/u/52824?v=4" width="100px;"/><br /><sub><b>Oleg</b></sub>](https://kof.github.io)<br />[💻](https://github.com/CompuIves/codesandbox-client/commits?author=kof "Code") | [<img src="https://avatars0.githubusercontent.com/u/1127037?v=4" width="100px;"/><br /><sub><b>Paul Sherman</b></sub>](https://www.pshrmn.com)<br />[🐛](https://github.com/CompuIves/codesandbox-client/issues?q=author%3Apshrmn "Bug reports") [💻](https://github.com/CompuIves/codesandbox-client/commits?author=pshrmn "Code") | [<img src="https://avatars2.githubusercontent.com/u/9244507?v=4" width="100px;"/><br /><sub><b>Ro Savage</b></sub>](https://github.com/ro-savage)<br />[💻](https://github.com/CompuIves/codesandbox-client/commits?author=ro-savage "Code") | [<img src="https://avatars3.githubusercontent.com/u/13242392?v=4" width="100px;"/><br /><sub><b>Sam Denty</b></sub>](https://samdd.me)<br />[💻](https://github.com/CompuIves/codesandbox-client/commits?author=samdenty99 "Code") | [<img src="https://avatars1.githubusercontent.com/u/3087225?v=4" width="100px;"/><br /><sub><b>Zephraph</b></sub>](https://github.com/zephraph)<br />[💻](https://github.com/CompuIves/codesandbox-client/commits?author=zephraph "Code") |
46+
| [<img src="https://avatars0.githubusercontent.com/u/1820292?v=4" width="100px;"/><br /><sub><b>Michel Weststrate</b></sub>](https://twitter.com/mweststrate)<br />[💻](https://github.com/CompuIves/codesandbox-client/commits?author=mweststrate "Code") | [<img src="https://avatars0.githubusercontent.com/u/52824?v=4" width="100px;"/><br /><sub><b>Oleg</b></sub>](https://kof.github.io)<br />[💻](https://github.com/CompuIves/codesandbox-client/commits?author=kof "Code") | [<img src="https://avatars0.githubusercontent.com/u/1127037?v=4" width="100px;"/><br /><sub><b>Paul Sherman</b></sub>](https://www.pshrmn.com)<br />[🐛](https://github.com/CompuIves/codesandbox-client/issues?q=author%3Apshrmn "Bug reports") [💻](https://github.com/CompuIves/codesandbox-client/commits?author=pshrmn "Code") | [<img src="https://avatars2.githubusercontent.com/u/9244507?v=4" width="100px;"/><br /><sub><b>Ro Savage</b></sub>](https://github.com/ro-savage)<br />[💻](https://github.com/CompuIves/codesandbox-client/commits?author=ro-savage "Code") | [<img src="https://avatars3.githubusercontent.com/u/13242392?v=4" width="100px;"/><br /><sub><b>Sam Denty</b></sub>](https://samdd.me)<br />[💻](https://github.com/CompuIves/codesandbox-client/commits?author=samdenty99 "Code") | [<img src="https://avatars1.githubusercontent.com/u/3087225?v=4" width="100px;"/><br /><sub><b>Zephraph</b></sub>](https://github.com/zephraph)<br />[💻](https://github.com/CompuIves/codesandbox-client/commits?author=zephraph "Code") | [<img src="https://avatars1.githubusercontent.com/u/1900735?v=4" width="100px;"/><br /><sub><b>Josh Waller</b></sub>](https://www.joshwaller.me)<br />[🐛](https://github.com/CompuIves/codesandbox-client/issues?q=author%3Amdxprograms "Bug reports") [💻](https://github.com/CompuIves/codesandbox-client/commits?author=mdxprograms "Code") [📖](https://github.com/CompuIves/codesandbox-client/commits?author=mdxprograms "Documentation") |
4747
<!-- ALL-CONTRIBUTORS-LIST:END -->

packages/app/config/env.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@ const getHost = () => {
1818
return `http://${process.env.STAGING_BRANCH}.cs.lbogdan.tk`;
1919
}
2020

21+
if ('ROOT_URL' in process.env) {
22+
return process.env.ROOT_URL;
23+
}
24+
2125
return 'https://codesandbox.io';
2226
};
2327

packages/app/package.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@
137137
"humps": "CompuIves/humps",
138138
"image-extensions": "^1.1.0",
139139
"immer": "^0.8.5",
140+
"is-url": "^1.2.2",
140141
"jest-circus": "^22.1.4",
141142
"jest-snapshot": "^22.1.2",
142143
"jszip": "^3.1.3",
@@ -148,11 +149,14 @@
148149
"mobx-state-tree": "^1.2.1",
149150
"moment": "^2.18.1",
150151
"monaco-editor": "CompuIves/codesandbox-monaco-editor",
151-
"monaco-vue": "^0.1.0",
152+
"monaco-vue": "^0.2.1",
152153
"normalize.css": "^5.0.0",
153154
"normalizr": "^3.2.3",
154155
"postcss": "^6.0.9",
155156
"postcss-selector-parser": "^2.2.3",
157+
"posthtml": "^0.11.3",
158+
"posthtml-parser": "^0.4.1",
159+
"posthtml-render": "^1.1.0",
156160
"qs": "^6.5.0",
157161
"querystring": "^0.2.0",
158162
"rc-slider": "^8.2.0",

packages/app/src/app/components/CodeEditor/Monaco/enable-emmet.js

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,7 @@ const enableEmmet = (editor, monaco) => {
4646

4747
// finally run expand to test the final result
4848
try {
49-
expandText = expand(str, {
50-
addons: {
51-
jsx: true,
52-
},
53-
});
49+
expandText = expand(str);
5450
} catch (e) {
5551
return '';
5652
}

packages/app/src/app/components/CodeEditor/Monaco/index.js

Lines changed: 42 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ class MonacoEditor extends React.Component<Props, State> implements Editor {
163163
setTimeout(() => {
164164
this.fetchDependencyTypings(dependencies);
165165
this.getConfigSchemas();
166-
}, this.hasNativeTypescript() ? 0 : 5000);
166+
}, this.hasNativeTypescript() ? 500 : 5000);
167167
}
168168
}
169169

@@ -286,7 +286,7 @@ class MonacoEditor extends React.Component<Props, State> implements Editor {
286286
newSandbox: Sandbox,
287287
newCurrentModule: Module,
288288
dependencies: $PropertyType<Props, 'dependencies'>
289-
) =>
289+
): Promise<null> =>
290290
new Promise(resolve => {
291291
const oldSandbox = this.sandbox;
292292

@@ -331,6 +331,10 @@ class MonacoEditor extends React.Component<Props, State> implements Editor {
331331

332332
changeSettings = (settings: $PropertyType<Props, 'settings'>) => {
333333
this.settings = settings;
334+
if (settings.lintEnabled && !this.lintWorker) {
335+
this.setupLintWorker();
336+
}
337+
334338
this.editor.updateOptions(this.getEditorOptions());
335339
this.forceUpdate();
336340
};
@@ -478,32 +482,36 @@ class MonacoEditor extends React.Component<Props, State> implements Editor {
478482
this.typingsFetcherWorker = new TypingsFetcherWorker();
479483
const regex = /node_modules\/(@types\/.*?)\//;
480484

481-
this.typingsFetcherWorker.addEventListener('message', event => {
482-
const sandbox = this.sandbox;
483-
const dependencies = this.dependencies || sandbox.npmDependencies;
484-
485-
Object.keys(event.data).forEach((path: string) => {
486-
const typings = event.data[path];
487-
if (
488-
path.startsWith('node_modules/@types') &&
489-
this.hasNativeTypescript()
490-
) {
491-
const match = path.match(regex);
492-
if (match && match[1]) {
493-
const dependency = match[1];
494-
495-
if (
496-
!Object.keys(dependencies).includes(dependency) &&
497-
this.props.onNpmDependencyAdded
498-
) {
499-
this.props.onNpmDependencyAdded(dependency);
485+
this.fetchDependencyTypings(this.dependencies || {});
486+
487+
if (this.typingsFetcherWorker) {
488+
this.typingsFetcherWorker.addEventListener('message', event => {
489+
const sandbox = this.sandbox;
490+
const dependencies = this.dependencies || sandbox.npmDependencies;
491+
492+
Object.keys(event.data).forEach((path: string) => {
493+
const typings = event.data[path];
494+
if (
495+
path.startsWith('node_modules/@types') &&
496+
this.hasNativeTypescript()
497+
) {
498+
const match = path.match(regex);
499+
if (match && match[1]) {
500+
const dependency = match[1];
501+
502+
if (
503+
!Object.keys(dependencies).includes(dependency) &&
504+
this.props.onNpmDependencyAdded
505+
) {
506+
this.props.onNpmDependencyAdded(dependency);
507+
}
500508
}
501509
}
502-
}
503510

504-
this.addLib(typings, '/' + path);
511+
this.addLib(typings, '/' + path);
512+
});
505513
});
506-
});
514+
}
507515
};
508516

509517
setupLintWorker = () => {
@@ -699,14 +707,16 @@ class MonacoEditor extends React.Component<Props, State> implements Editor {
699707

700708
lint = async (code: string, title: string, version: number) => {
701709
const mode = await this.getMode(title);
702-
if (mode === 'javascript' || mode === 'vue') {
703-
if (this.lintWorker) {
704-
this.lintWorker.postMessage({
705-
code,
706-
title,
707-
version,
708-
template: this.sandbox.template,
709-
});
710+
if (this.settings.lintEnabled) {
711+
if (mode === 'javascript' || mode === 'vue') {
712+
if (this.lintWorker) {
713+
this.lintWorker.postMessage({
714+
code,
715+
title,
716+
version,
717+
template: this.sandbox.template,
718+
});
719+
}
710720
}
711721
}
712722
};

packages/app/src/app/components/NewSandbox/index.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import TerminalIcon from 'react-icons/lib/go/terminal';
55

66
import {
77
newSandboxUrl,
8+
parcelSandboxUrl,
89
newReactTypeScriptSandboxUrl,
910
newPreactSandboxUrl,
1011
newVueSandboxUrl,
@@ -16,6 +17,7 @@ import {
1617

1718
import ReactIcon from 'common/components/logos/React';
1819
import PreactIcon from 'common/components/logos/Preact';
20+
import ParcelIcon from 'common/components/logos/Parcel';
1921
import VueIcon from 'common/components/logos/Vue';
2022
import SvelteIcon from 'common/components/logos/Svelte';
2123
import AngularIcon from 'common/components/logos/Angular';
@@ -43,6 +45,15 @@ function NewSandbox({ signals }) {
4345
return (
4446
<Container>
4547
<RowContainer>
48+
<Logo
49+
Icon={ParcelIcon}
50+
width={50}
51+
height={50}
52+
text="Vanilla"
53+
href={parcelSandboxUrl()}
54+
onClick={() => signals.closeModal()}
55+
/>
56+
4657
<Logo
4758
Icon={ReactIcon}
4859
width={50}

packages/app/src/app/pages/Sandbox/Editor/Workspace/Dependencies/index.js

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1+
// @flow
12
import * as React from 'react';
23
import { inject, observer } from 'mobx-react';
34

45
import Margin from 'common/components/spacing/Margin';
6+
import getDefinition from 'common/templates';
57
import { WorkspaceSubtitle } from '../elements';
68

79
import AddVersion from './AddVersion';
@@ -25,6 +27,8 @@ function Dependencies({ signals, store }) {
2527
const dependencies = parsed.dependencies || {};
2628
// const devDependencies = parsed.devDependencies || {};
2729

30+
const templateDefinition = getDefinition(sandbox.template);
31+
2832
return (
2933
<div>
3034
<Margin bottom={0}>
@@ -66,27 +70,29 @@ function Dependencies({ signals, store }) {
6670
))} */}
6771
<AddVersion>Add Dependency</AddVersion>
6872
</Margin>
69-
<div>
70-
<WorkspaceSubtitle>External Resources</WorkspaceSubtitle>
71-
{(sandbox.externalResources || []).map(resource => (
72-
<ExternalResource
73-
key={resource}
74-
resource={resource}
75-
removeResource={() =>
76-
this.props.signals.workspace.externalResourceRemoved({
73+
{templateDefinition.externalResourcesEnabled && (
74+
<div>
75+
<WorkspaceSubtitle>External Resources</WorkspaceSubtitle>
76+
{(sandbox.externalResources || []).map(resource => (
77+
<ExternalResource
78+
key={resource}
79+
resource={resource}
80+
removeResource={() =>
81+
this.props.signals.workspace.externalResourceRemoved({
82+
resource,
83+
})
84+
}
85+
/>
86+
))}
87+
<AddResource
88+
addResource={resource =>
89+
signals.workspace.externalResourceAdded({
7790
resource,
7891
})
7992
}
8093
/>
81-
))}
82-
<AddResource
83-
addResource={resource =>
84-
signals.workspace.externalResourceAdded({
85-
resource,
86-
})
87-
}
88-
/>
89-
</div>
94+
</div>
95+
)}
9096
</div>
9197
);
9298
}

packages/app/src/app/pages/Sandbox/SearchDependencies/DependencyHit/index.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,9 @@ export default class DependencyHit extends React.PureComponent {
3434
}
3535

3636
makeSearchUrl(hitName: string) {
37-
return `https://codesandbox.io/search?refinementList%5Bnpm_dependencies.dependency%5D%5B0%5D=${hitName}&page=1`;
37+
return `${
38+
process.env.CODESANDBOX_HOST
39+
}/search?refinementList%5Bnpm_dependencies.dependency%5D%5B0%5D=${hitName}&page=1`;
3840
}
3941

4042
stopPropagation(e) {

packages/app/src/app/pages/common/Modals/PreferencesModal/EditorPageSettings/EditorSettings/index.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,16 @@ function EditorSettings({ store, signals }) {
5454
Automatically download type definitions for dependencies.
5555
</SubDescription>
5656
<Rule />
57+
<PaddedPreference
58+
title="ESLint"
59+
type="boolean"
60+
tooltip="Made possible by ESLint"
61+
{...bindValue('lintEnabled')}
62+
/>
63+
<SubDescription>
64+
Whether linting as you type should be enabled.
65+
</SubDescription>
66+
<Rule />
5767
<PaddedPreference
5868
title="Prettify on save"
5969
type="boolean"

0 commit comments

Comments
 (0)