├── demo.gif
├── proptypes.sublime-snippet
├── defaultprops.sublime-snippet
├── method-render.sublime-snippet
├── redux-mapstatetoprops.sublime-snippet
├── redux-mapdispatchtoprops.sublime-snippet
├── style.sublime-snippet
├── apisauce.sublime-snippet
├── babel-modules-resolver.sublime-snippet
├── reactotron_config.sublime-snippet
├── component.sublime-snippet
├── stateless_component.sublime-snippet
├── redux_index.sublime-snippet
├── stateless_redux_component.sublime-snippet
├── redux_component.sublime-snippet
├── duck.sublime-snippet
├── eslint.sublime-snippet
├── redux_configure_store.sublime-snippet
└── README.md
/demo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Rocketseat/rocketnative-sublime-snippets/HEAD/demo.gif
--------------------------------------------------------------------------------
/proptypes.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 |
8 | proptypes
9 | source.js,source.jsx
10 | Create component propTypes
11 |
12 |
--------------------------------------------------------------------------------
/defaultprops.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 |
8 | defaultprops
9 | source.js,source.jsx
10 | Create component defaultProps
11 |
12 |
--------------------------------------------------------------------------------
/method-render.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | }
6 | );
7 | }
8 |
9 | ]]>
10 | render
11 | source.js,source.jsx
12 | Create render method
13 |
14 |
--------------------------------------------------------------------------------
/redux-mapstatetoprops.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | ({
4 | ${1}
5 | });
6 |
7 | ]]>
8 | mapStateToProps
9 | source.js,source.jsx
10 | Create redux mapStateToProps
11 |
12 |
--------------------------------------------------------------------------------
/redux-mapdispatchtoprops.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | ({
4 | ${1}
5 | });
6 |
7 | ]]>
8 | mapDispatchToProps
9 | source.js,source.jsx
10 | Create redux mapDispatchToProps
11 |
12 |
--------------------------------------------------------------------------------
/style.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 |
12 | styles
13 | source.js,source.jsx
14 | Create react-native Style file
15 |
16 |
--------------------------------------------------------------------------------
/apisauce.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 |
12 | apisauce
13 | source.js,source.jsx
14 | Create APISauce Config
15 |
16 |
--------------------------------------------------------------------------------
/babel-modules-resolver.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 |
14 | moduleResolver
15 | source.babelrc,source.json
16 | Create Module Resolver config
17 |
18 |
--------------------------------------------------------------------------------
/reactotron_config.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 |
17 | reactotronconfig
18 | source.js,source.jsx
19 | Create Reactotron Config
20 |
21 |
--------------------------------------------------------------------------------
/component.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 |
15 | );
16 | }
17 | }
18 |
19 | ]]>
20 | component
21 | source.js,source.jsx
22 | Create react-native component
23 |
24 |
--------------------------------------------------------------------------------
/stateless_component.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | (
12 |
13 | );
14 |
15 | export default ${1:${TM_FILENAME/(.+)\..+|.*/$1/:MyComponent}};
16 |
17 | ]]>
18 | componentStateless
19 | source.js,source.jsx
20 | Create react-native stateless component
21 |
22 |
--------------------------------------------------------------------------------
/redux_index.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | {
12 | const rootReducer = combineReducers({
13 | // nav: navReducer,
14 | });
15 |
16 | return configureStore(rootReducer, rootSaga);
17 | };
18 |
19 | ]]>
20 | reduxSetup
21 | source.js,source.jsx
22 | Create Redux Setup file
23 |
24 |
--------------------------------------------------------------------------------
/stateless_redux_component.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | (
15 |
16 | );
17 |
18 | const mapStateToProps = state => ({
19 |
20 | });
21 |
22 | const mapDispatchToProps = dispatch => ({
23 |
24 | });
25 |
26 | export default connect(mapStateToProps, mapDispatchToProps)(${1:${TM_FILENAME/(.+)\..+|.*/$1/:MyComponent}});
27 |
28 | ]]>
29 | reduxComponentStateless
30 | source.js,source.jsx
31 | Create react-native stateless Redux component
32 |
33 |
--------------------------------------------------------------------------------
/redux_component.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 |
18 | );
19 | }
20 | }
21 |
22 | const mapStateToProps = state => ({
23 |
24 | });
25 |
26 | const mapDispatchToProps = dispatch => ({
27 |
28 | });
29 |
30 | export default connect(mapStateToProps, mapDispatchToProps)(${1:${TM_FILENAME/(.+)\..+|.*/$1/:MyComponent}});
31 |
32 | ]]>
33 | reduxComponent
34 | source.js,source.jsx
35 | Create react-native Redux component
36 |
37 |
--------------------------------------------------------------------------------
/duck.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 |
24 | // state.merge({ data: [] });
25 |
26 | /* Reducers to types */
27 |
28 | export const reducer = createReducer(INITIAL_STATE, {
29 | // [Types.ACTION_TYPE]: reducer,
30 | });
31 |
32 | ]]>
33 | duck
34 | source.js,source.jsx
35 | Create react-native duck module
36 |
37 |
--------------------------------------------------------------------------------
/eslint.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 |
36 | eslint
37 | source.json
38 | Create eslint file config
39 |
40 |
--------------------------------------------------------------------------------
/redux_configure_store.sublime-snippet:
--------------------------------------------------------------------------------
1 |
2 | {
6 | const middleware = [];
7 | const enhancers = [];
8 |
9 | /* Saga */
10 | // const sagaMonitor = __DEV__ ? console.tron.createSagaMonitor() : null;
11 | // const sagaMiddleware = createSagaMiddleware({ sagaMonitor });
12 | // middleware.push(sagaMiddleware);
13 |
14 | enhancers.push(applyMiddleware(...middleware));
15 |
16 | /* Store */
17 | const createAppropriateStore = __DEV__ ? console.tron.createStore : createStore;
18 | const store = createAppropriateStore(rootReducer, compose(...enhancers));
19 |
20 | /* Run Saga */
21 | // sagaMiddleware.run(rootSaga);
22 |
23 | return store;
24 | };
25 |
26 | ]]>
27 | configureStore
28 | source.js,source.jsx
29 | Create configureStore file
30 |
31 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
DEPRECATED
5 |
6 | 🚨 Hey, this repository is DEPRECATED and will no longer be actively maintained!
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | ## RocketNative Snippets
18 |
19 | React Native code snippets for Sublime Text
20 |
21 | ## Summary
22 |
23 | - [Installation](#installation)
24 | - [Usage](#usage)
25 | - [Component](#component)
26 | - [ESLint](#eslint)
27 | - [Redux](#redux)
28 | - [Reactotron](#reactotron)
29 | - [Babel](#babel)
30 | - [Apisauce](#apisauce)
31 |
32 | 
33 |
34 | ### Installation
35 | To install through [Package Control](http://wbond.net/sublime_packages/package_control),
36 | search for **RocketNative Snippets**. If you still don't have Package Control in Sublime Text, [go get it](http://wbond.net/sublime_packages/package_control/installation).
37 | It's pure awesomeness.
38 |
39 | ## Usage
40 | ### Component
41 | #### [component] - Create react-native component
42 | ```javascript
43 | /* Core */
44 | import React, { Component } from 'react';
45 |
46 | /* Presentational */
47 | import { View } from 'react-native';
48 |
49 | // import styles from './styles';
50 |
51 | export default class MyComponent extends Component {
52 | render() {
53 | return (
54 |
55 | );
56 | }
57 | }
58 | ```
59 |
60 | #### [proptypes] - Create component propTypes
61 | ```javascript
62 | static propTypes = {
63 |
64 | };
65 | ```
66 |
67 | #### [defaultprops] - Create component defaultProps
68 | ```javascript
69 | static defaultProps = {
70 |
71 | };
72 | ```
73 |
74 | #### [render] - Create render method
75 | ```javascript
76 | render() {
77 | return (
78 |
79 | );
80 | }
81 | ```
82 |
83 | ### ESLint
84 | #### [eslint] - Create eslint file config
85 | ```json
86 | {
87 | "parser": "babel-eslint",
88 | "env": {
89 | "browser": true,
90 | "jest": true
91 | },
92 | "plugins": [
93 | "react-native",
94 | "jsx-a11y",
95 | "import"
96 | ],
97 | "extends": [
98 | "airbnb",
99 | "plugin:react-native/all"
100 | ],
101 | "rules": {
102 | "react/jsx-filename-extension": ["error", { "extensions": [".js", ".jsx"] }],
103 | "global-require": "off",
104 | "no-console": "off",
105 | "import/prefer-default-export": "off",
106 | "no-unused-vars": ["error", {"argsIgnorePattern": "^_"}]
107 | },
108 | "settings": {
109 | "import/resolver": {
110 | "babel-module": {}
111 | }
112 | },
113 | "globals": {
114 | "__DEV__": true
115 | }
116 | }
117 | ```
118 |
119 | ### Redux
120 | #### [reduxSetup] - Create Redux Setup file
121 | ```javascript
122 | import { combineReducers } from 'redux';
123 |
124 | /* Reducers */
125 | // import navReducer from 'navigation/reducer';
126 |
127 | import configureStore from './configureStore';
128 | // import rootSaga from './sagas';
129 |
130 | export default () => {
131 | const rootReducer = combineReducers({
132 | // nav: navReducer,
133 | });
134 |
135 | return configureStore(rootReducer, rootSaga);
136 | };
137 | ```
138 |
139 | #### [configureStore] - Create configureStore file
140 | ```javascript
141 | import { createStore, applyMiddleware, compose } from 'redux';
142 |
143 | export default (rootReducer) => {
144 | const middleware = [];
145 | const enhancers = [];
146 |
147 | /* Saga */
148 | // const sagaMonitor = __DEV__ ? console.tron.createSagaMonitor() : null;
149 | // const sagaMiddleware = createSagaMiddleware({ sagaMonitor });
150 | // middleware.push(sagaMiddleware);
151 |
152 | enhancers.push(applyMiddleware(...middleware));
153 |
154 | /* Store */
155 | const createAppropriateStore = __DEV__ ? console.tron.createStore : createStore;
156 | const store = createAppropriateStore(rootReducer, compose(...enhancers));
157 |
158 | /* Run Saga */
159 | // sagaMiddleware.run(rootSaga);
160 |
161 | return store;
162 | };
163 | ```
164 |
165 | #### [reduxComponent] - Create react-native Redux component
166 | ```javascript
167 | /* Core */
168 | import React, { Component } from 'react';
169 |
170 | /* Presentational */
171 | import { View } from 'react-native';
172 |
173 | /* Redux */
174 | import { connect } from 'react-redux';
175 |
176 | // import styles from './styles';
177 |
178 | class extends Component {
179 | render() {
180 | return (
181 |
182 | );
183 | }
184 | }
185 |
186 | const mapStateToProps = state => ({
187 |
188 | });
189 |
190 | const mapDispatchToProps = dispatch => ({
191 |
192 | });
193 |
194 | export default connect(mapStateToProps, mapDispatchToProps)();
195 | ```
196 |
197 | #### [mapStateToProps] - Create redux mapStateToProps
198 | ```javascript
199 | const mapStateToProps = state => ({
200 |
201 | });
202 | ```
203 |
204 | #### [mapDispatchToProps] - Create redux mapDispatchToProps
205 | ```javascript
206 | const mapDispatchToProps = dispatch => ({
207 |
208 | });
209 | ```
210 |
211 | #### [duck] - Create react-native duck module
212 | ```javascript
213 | import { createReducer, createActions } from 'reduxsauce';
214 | import Immutable from 'seamless-immutable';
215 |
216 | /* Types & Action Creators */
217 |
218 | const { Types, Creators } = createActions({
219 | // actionType: ['dataPassed'],
220 | });
221 |
222 | export const TesteTypes = Types;
223 | export default Creators;
224 |
225 | /* Initial State */
226 |
227 | export const INITIAL_STATE = Immutable({
228 | // data: [],
229 | });
230 |
231 | /* Reducers */
232 |
233 | // export const reducer = state =>
234 | // state.merge({ data: [] });
235 |
236 | /* Reducers to types */
237 |
238 | export const reducer = createReducer(INITIAL_STATE, {
239 | // [Types.ACTION_TYPE]: reducer,
240 | });
241 | ```
242 |
243 | ### Reactotron
244 | #### [reactotronconfig] - Create Reactotron Config
245 | ```javascript
246 | import Reactotron from 'reactotron-react-native';
247 |
248 | if (__DEV__) {
249 | const tron = Reactotron
250 | .configure()
251 | .useReactNative()
252 | .connect();
253 |
254 | tron.clear();
255 |
256 | console.tron = tron;
257 | }
258 | ```
259 |
260 | ### Babel
261 | #### [moduleResolver] - Create Module Resolver config
262 | ```json
263 | "plugins": [
264 | [
265 | "module-resolver",
266 | {
267 | "root": ["./src"],
268 | "extensions": [".js", ".ios.js", ".android.js"]
269 | }
270 | ]
271 | ]
272 | ```
273 |
274 | ### Apisauce
275 | #### [apisauce] - Create APISauce Config
276 | ```javascript
277 | import { create } from 'apisauce';
278 |
279 | const api = create({
280 | baseURL: 'http://localhost:3000',
281 | });
282 |
283 | export default api;
284 | ```
285 |
--------------------------------------------------------------------------------