diff --git a/.all-contributorsrc b/.all-contributorsrc
index a7b41bd699e..d304c336631 100644
--- a/.all-contributorsrc
+++ b/.all-contributorsrc
@@ -1395,6 +1395,15 @@
"code"
]
},
+ {
+ "login": "ivandevp",
+ "name": "Ivan Medina",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/9284690?v=4",
+ "profile": "https://twitter.com/ivandevp",
+ "contributions": [
+ "code"
+ ]
+ },
{
"login": "Gobinath-Manokaran",
"name": "Gobinath-Manokaran",
diff --git a/README.md b/README.md
index 096bf5ad22f..2303af4b32d 100644
--- a/README.md
+++ b/README.md
@@ -235,6 +235,8 @@ Thanks goes to these wonderful people
 Het Patel 💻 |
+  Ivan Medina 💻 |
+  milap1296 💻 |
 Gobinath-Manokaran 💻 |
 Abdul Rauf 💻 📖 |
 milap1296 💻 |
diff --git a/packages/app/src/app/pages/Sandbox/Editor/Workspace/Files/index.js b/packages/app/src/app/pages/Sandbox/Editor/Workspace/Files/index.js
deleted file mode 100644
index ab5b2c342fc..00000000000
--- a/packages/app/src/app/pages/Sandbox/Editor/Workspace/Files/index.js
+++ /dev/null
@@ -1,84 +0,0 @@
-import { getModulePath } from '@codesandbox/common/lib/sandbox/modules';
-import { inject, observer } from 'app/componentConnectors';
-import * as React from 'react';
-
-import EditIcons from './DirectoryEntry/Entry/EditIcons';
-import DirectoryEntry from './DirectoryEntry/index';
-
-class Files extends React.Component {
- createModule = () => {
- // INCREDIBLY BAD PRACTICE! TODO: FIX THIS
- this._createModule();
- };
-
- createDirectory = () => {
- // INCREDIBLY BAD PRACTICE! TODO: FIX THIS
- this._createDirectory();
- };
-
- uploadFile = () => {
- // INCREDIBLY BAD PRACTICE! TODO: FIX THIS
- this._uploadFile();
- };
-
- onDownload = () => {
- this.props.signals.editor.createZipClicked();
- };
-
- getModulePath = moduleId => {
- try {
- const sandbox = this.props.store.editor.currentSandbox;
- return getModulePath(sandbox.modules, sandbox.directories, moduleId);
- } catch (e) {
- return '';
- }
- };
-
- render() {
- const { store } = this.props;
- const sandbox = store.editor.currentSandbox;
-
- return (
- {
- this._createModule = onCreateModuleClick;
- this._createDirectory = onCreateDirectoryClick;
- this._uploadFile = onUploadFileClick;
-
- if (this.props.setEditActions) {
- this.props.setEditActions(
-
- );
- }
- }}
- depth={-1}
- id={null}
- shortid={null}
- />
- );
- }
-}
-
-export default inject('signals', 'store')(observer(Files));
diff --git a/packages/app/src/app/pages/Sandbox/Editor/Workspace/Files/index.tsx b/packages/app/src/app/pages/Sandbox/Editor/Workspace/Files/index.tsx
new file mode 100644
index 00000000000..448d1da891a
--- /dev/null
+++ b/packages/app/src/app/pages/Sandbox/Editor/Workspace/Files/index.tsx
@@ -0,0 +1,65 @@
+import { getModulePath } from '@codesandbox/common/lib/sandbox/modules';
+import { useOvermind } from 'app/overmind';
+import React from 'react';
+
+import EditIcons from './DirectoryEntry/Entry/EditIcons';
+import DirectoryEntry from './DirectoryEntry/index';
+
+interface IFilesProps {
+ setEditActions: React.Dispatch;
+}
+
+export const Files: React.FC = ({ setEditActions }) => {
+ const {
+ state: {
+ editor: { currentSandbox: sandbox },
+ isLoggedIn,
+ },
+ actions: {
+ editor: {
+ createZipClicked,
+ }
+ },
+ } = useOvermind();
+
+ const _getModulePath = moduleId => {
+ try {
+ return getModulePath(sandbox.modules, sandbox.directories, moduleId);
+ } catch (e) {
+ return '';
+ }
+ };
+
+ return (
+ {
+ if (setEditActions) {
+ setEditActions(
+
+ );
+ }
+ }}
+ depth={-1}
+ id={null}
+ shortid={null}
+ />
+ );
+};
diff --git a/packages/app/src/app/pages/Sandbox/Editor/Workspace/items/Files/index.tsx b/packages/app/src/app/pages/Sandbox/Editor/Workspace/items/Files/index.tsx
index b90b79aa728..a0f60b8b34d 100644
--- a/packages/app/src/app/pages/Sandbox/Editor/Workspace/items/Files/index.tsx
+++ b/packages/app/src/app/pages/Sandbox/Editor/Workspace/items/Files/index.tsx
@@ -1,7 +1,7 @@
import React, { useState } from 'react';
import { useOvermind } from 'app/overmind';
-import Files from '../../Files';
+import { Files } from '../../Files';
import { Dependencies } from '../../Dependencies';
import { WorkspaceItem } from '../../WorkspaceItem';
import { ItemTitle } from '../../elements';
diff --git a/packages/app/src/app/pages/Sandbox/Editor/Workspace/items/NotOwnedSandboxInfo/NotOwnedSandboxInfo.tsx b/packages/app/src/app/pages/Sandbox/Editor/Workspace/items/NotOwnedSandboxInfo/NotOwnedSandboxInfo.tsx
index 90689bfded2..546a9d7e410 100644
--- a/packages/app/src/app/pages/Sandbox/Editor/Workspace/items/NotOwnedSandboxInfo/NotOwnedSandboxInfo.tsx
+++ b/packages/app/src/app/pages/Sandbox/Editor/Workspace/items/NotOwnedSandboxInfo/NotOwnedSandboxInfo.tsx
@@ -1,7 +1,7 @@
import React, { useState } from 'react';
import { useOvermind } from 'app/overmind';
import { Dependencies } from '../../Dependencies';
-import Files from '../../Files';
+import { Files } from '../../Files';
import { Project } from '../../Project';
import { WorkspaceItem } from '../../WorkspaceItem';