├── docs ├── debugging.md ├── deployment.md ├── testing.md ├── styling.md └── Troubleshooting.md ├── components ├── FileUploader │ ├── utils.js │ ├── styles │ │ └── index.js │ └── tests │ │ └── index.test.js ├── MarkDownPreviewer │ ├── styles │ │ └── index.js │ └── tests │ │ └── index.test.js ├── MarkDownRender │ ├── styles │ │ └── index.js │ └── tests │ │ └── index.test.js ├── UsersTable │ ├── styles │ │ └── index.js │ └── tests │ │ └── index.test.js ├── ThemeSelector │ ├── style │ │ ├── dot_selector.js │ │ └── index.js │ ├── tests │ │ └── index.test.js │ ├── DotSelector.js │ └── index.js ├── Maybe │ ├── tests │ │ └── index.test.js │ └── index.js ├── Modal │ └── tests │ │ └── index.test.js ├── Pagi │ ├── tests │ │ └── index.test.js │ └── styles │ │ └── index.js ├── Footer │ └── tests │ │ └── index.test.js ├── Popover │ ├── tests │ │ └── index.test.js │ └── styles │ │ └── index.js ├── SexCell │ ├── tests │ │ └── index.test.js │ ├── styles │ │ └── index.js │ └── index.js ├── Tabber │ └── tests │ │ └── index.test.js ├── FormItem │ ├── tests │ │ └── index.test.js │ ├── styles │ │ └── index.js │ └── index.js ├── NotFound │ └── tests │ │ └── index.test.js ├── TagList │ └── tests │ │ └── index.test.js ├── TagsCell │ ├── tests │ │ └── index.test.js │ ├── styles │ │ ├── index.js │ │ └── tags_list.js │ └── TagsList.js ├── UserCell │ ├── tests │ │ └── index.test.js │ ├── styles │ │ └── index.js │ └── index.js ├── AdderCell │ ├── tests │ │ └── index.test.js │ ├── index.js │ └── styles │ │ └── index.js ├── AvatarsRow │ └── tests │ │ └── index.test.js ├── ColorCell │ ├── tests │ │ └── index.test.js │ ├── styles │ │ └── index.js │ └── index.js ├── FocusLine │ ├── tests │ │ └── index.test.js │ ├── styles │ │ └── index.js │ └── index.js ├── JobsTable │ ├── tests │ │ └── index.test.js │ └── styles │ │ └── index.js ├── MaybeCell │ ├── tests │ │ └── index.test.js │ └── index.js ├── Navigator │ ├── tests │ │ └── index.test.js │ └── index.js ├── PostsTable │ ├── tests │ │ └── index.test.js │ └── styles │ │ └── index.js ├── ReposTable │ ├── tests │ │ └── index.test.js │ └── styles │ │ └── index.js ├── SocialSell │ ├── tests │ │ └── index.test.js │ └── styles │ │ └── index.js ├── StateTree │ ├── tests │ │ └── index.test.js │ ├── styles │ │ └── index.js │ ├── index.js │ └── StateTree.js ├── StatusBox │ └── tests │ │ └── index.test.js ├── TagsTable │ ├── tests │ │ └── index.test.js │ └── styles │ │ └── index.js ├── UserBrief │ ├── tests │ │ └── index.test.js │ ├── Operators.js │ └── styles │ │ ├── badge_info.js │ │ └── social_icons.js ├── FormInputer │ ├── tests │ │ └── index.test.js │ └── styles │ │ └── index.js ├── FormSelector │ ├── tests │ │ └── index.test.js │ └── styles │ │ └── index.js ├── ThreadsCell │ ├── tests │ │ └── index.test.js │ └── styles │ │ └── index.js ├── ThreadsTable │ ├── tests │ │ └── index.test.js │ └── styles │ │ └── index.js ├── VideosTable │ ├── tests │ │ └── index.test.js │ └── styles │ │ └── index.js ├── CommunityCell │ ├── tests │ │ └── index.test.js │ ├── styles │ │ └── communities_logo_list.js │ └── CommunitiesLogoList.js ├── ContentFilter │ └── tests │ │ └── index.test.js ├── GAWraper │ └── index.js ├── TimeStampCell │ ├── tests │ │ └── index.test.js │ └── styles │ │ └── index.js ├── CategoriesCell │ └── tests │ │ └── index.test.js ├── CommunityMatrix │ ├── tests │ │ └── index.test.js │ └── styles │ │ └── index.js ├── LoadingEffects │ ├── tests │ │ └── index.test.js │ ├── index.js │ └── TableLoading.js ├── PermissionCell │ └── tests │ │ └── index.test.js ├── BannerCountBrief │ ├── tests │ │ └── index.test.js │ └── styles │ │ └── index.js ├── ContentsCountCell │ ├── tests │ │ └── index.test.js │ └── styles │ │ └── index.js ├── TagColorSelector │ └── tests │ │ └── index.test.js ├── A │ └── index.js └── Img │ └── index.js ├── containers ├── Route │ ├── styles │ │ └── index.js │ └── tests │ │ └── index.test.js ├── Banner │ ├── styles │ │ └── index.js │ ├── tests │ │ ├── store.test.js │ │ └── index.test.js │ ├── store.js │ └── logic.js ├── Content │ ├── styles │ │ └── index.js │ ├── tests │ │ ├── store.test.js │ │ └── index.test.js │ └── store.js ├── ArticleViwer │ ├── styles │ │ └── index.js │ ├── tests │ │ ├── store.test.js │ │ └── index.test.js │ └── lang.js ├── Preview │ └── tests │ │ ├── store.test.js │ │ └── index.test.js ├── TypeWriter │ ├── styles │ │ ├── editorStyle.js │ │ ├── body_editor.js │ │ ├── markdown_helper.js │ │ ├── editor_header.js │ │ ├── preview.js │ │ ├── footer.js │ │ ├── editor_footer.js │ │ └── header.js │ ├── tests │ │ ├── store.test.js │ │ └── index.test.js │ ├── lang.js │ └── schema.js ├── Labeler │ ├── tests │ │ ├── store.test.js │ │ └── index.test.js │ ├── schema.js │ ├── TagList.js │ ├── styles │ │ ├── index.js │ │ └── tag_list.js │ └── store.js ├── UsersContent │ ├── schema.js │ ├── styles │ │ └── index.js │ ├── tests │ │ ├── store.test.js │ │ └── index.test.js │ └── IndexContent.js ├── Comments │ ├── tests │ │ ├── store.test.js │ │ └── index.test.js │ ├── lang.js │ ├── styles │ │ ├── reply_to_bar.js │ │ ├── editor_footer.js │ │ ├── comment_reply_editor.js │ │ ├── index.js │ │ ├── comment_editor.js │ │ ├── reply_editor_header.js │ │ ├── words_counter.js │ │ └── editor_header.js │ ├── WordsCounter.js │ └── ReplyToBar.js ├── DocUploader │ ├── tests │ │ ├── store.test.js │ │ └── index.test.js │ ├── styles │ │ └── index.js │ └── store.js ├── TagEditor │ ├── tests │ │ ├── store.test.js │ │ └── index.test.js │ └── styles │ │ └── index.js ├── TagSetter │ ├── tests │ │ ├── store.test.js │ │ └── index.test.js │ └── store.js ├── ThreadEditor │ ├── tests │ │ ├── store.test.js │ │ └── index.test.js │ ├── schema.js │ └── styles │ │ └── index.js ├── UsersBanner │ ├── tests │ │ ├── store.test.js │ │ └── index.test.js │ ├── schema.js │ ├── styles │ │ └── index.js │ └── store.js ├── PermissionEditor │ ├── styles │ │ ├── community_list.js │ │ ├── index.js │ │ └── permission_list.js │ ├── tests │ │ ├── store.test.js │ │ └── index.test.js │ └── schema.js ├── ThreadSetter │ ├── tests │ │ ├── store.test.js │ │ └── index.test.js │ ├── schema.js │ └── store.js ├── AccountEditor │ ├── tests │ │ ├── store.test.js │ │ └── index.test.js │ ├── schema.js │ └── lang.js ├── AccountViewer │ ├── tests │ │ ├── store.test.js │ │ └── index.test.js │ ├── lang.js │ ├── NumSection.js │ ├── styles │ │ ├── num_section.js │ │ ├── site_social.js │ │ └── planets.js │ └── schema.js ├── CategoryEditor │ ├── tests │ │ ├── store.test.js │ │ └── index.test.js │ ├── schema.js │ └── styles │ │ └── index.js ├── CategorySetter │ ├── tests │ │ ├── store.test.js │ │ └── index.test.js │ ├── schema.js │ └── store.js ├── CommunityBanner │ ├── tests │ │ ├── store.test.js │ │ └── index.test.js │ ├── schema.js │ └── styles │ │ └── index.js ├── CommunityEditor │ ├── tests │ │ ├── store.test.js │ │ └── index.test.js │ └── schema.js ├── CommunitySetter │ ├── tests │ │ ├── store.test.js │ │ └── index.test.js │ ├── schema.js │ └── store.js ├── CommunityContent │ ├── tests │ │ ├── store.test.js │ │ └── index.test.js │ ├── UsersContent.js │ ├── JobsContent.js │ ├── VideosContent.js │ ├── TagsContent.js │ ├── PostsContent.js │ ├── ReposContent.js │ ├── ThreadsContent.js │ └── styles │ │ └── index.js ├── CommunitiesBanner │ ├── tests │ │ └── store.test.js │ └── styles │ │ └── index.js ├── CommunitiesContent │ ├── tests │ │ ├── store.test.js │ │ └── index.test.js │ ├── lang.js │ ├── TagsContent.js │ ├── ThreadsContent.js │ ├── styles │ │ └── index.js │ ├── JobsContent.js │ ├── ReposContent.js │ ├── VideosContent.js │ └── PostsContent.js ├── Header │ ├── tests │ │ └── index.test.js │ ├── lang.js │ └── schema.js ├── Sidebar │ ├── tests │ │ └── index.test.js │ ├── lang.js │ └── SearchBox.js ├── BodyLayout │ ├── tests │ │ └── index.test.js │ ├── logic.js │ ├── styles │ │ └── index.js │ └── index.js ├── ApiLayout │ ├── tests │ │ └── index.test.js │ ├── lang.js │ ├── styles │ │ └── index.js │ ├── logic.js │ └── index.js ├── CheatSheetContent │ ├── tests │ │ └── index.test.js │ ├── lang.js │ └── logic.js ├── schemas │ ├── pages │ │ ├── thread.js │ │ ├── wiki.js │ │ ├── cheatsheet.js │ │ ├── misc.js │ │ ├── comment.js │ │ └── tag.js │ ├── index.js │ └── fragments │ │ └── paged.js ├── MultiLanguage │ └── index.js └── ThemeWrapper │ └── index.js ├── .eslintrc.js ├── utils ├── async │ └── index.js ├── uid.js ├── constant │ ├── c11n.js │ ├── err.js │ ├── payment.js │ ├── thread.js │ ├── index.js │ └── route.js ├── scripts │ ├── generators │ │ ├── component │ │ │ ├── styles.js.hbs │ │ │ ├── test.js.hbs │ │ │ ├── lang.js.hbs │ │ │ └── stateless.js.hbs │ │ ├── container │ │ │ ├── styles.js.hbs │ │ │ ├── store.test.js.hbs │ │ │ ├── test.js.hbs │ │ │ ├── lang.js.hbs │ │ │ ├── schema.js.hbs │ │ │ └── store.js.hbs │ │ ├── store │ │ │ ├── store.test.js.hbs │ │ │ └── store.js.hbs │ │ └── index.js │ ├── checkmark.js │ ├── clean.js │ ├── cp_locales.js │ ├── component_exists.js │ └── create_default_lang.js ├── async_suit.js ├── analytics.js └── themes │ └── skins │ └── index.js ├── static ├── waji.png ├── favicon.ico ├── flag_cn.png ├── flag_en.png └── locales │ └── zh.json ├── deploy ├── dev │ ├── web.tar.gz │ ├── loader.sh │ ├── Dockerfile │ └── packer.sh └── production │ ├── web.tar.gz │ ├── loader.sh │ ├── Dockerfile │ └── packer.sh ├── .agignore ├── .prettierrc ├── .gitignore ├── .huskyrc ├── .jest.setup.js ├── stores ├── ThemeStore │ ├── test │ │ └── index.test.js │ └── index.js ├── SharedModel │ ├── general.js │ ├── Article.js │ ├── Thread.js │ └── index.js ├── CommunitiesStore │ ├── test │ │ └── index.test.js │ ├── CheatSheetModal.js │ ├── PlModel.js │ ├── DatabaseModel.js │ ├── FrameworkModel.js │ └── CommonModels.js ├── PostsStore │ └── test │ │ └── index.test.js ├── UsersStore │ ├── test │ │ └── index.test.js │ └── index.js ├── HeaderStore │ └── test │ │ └── index.test.js ├── AccountStore │ └── test │ │ └── index.test.js ├── ApiLayoutStore │ ├── test │ │ └── index.test.js │ └── index.js ├── BodylayoutStore │ ├── test │ │ └── index.test.js │ └── index.js ├── JobsViewerStore │ ├── test │ │ └── index.test.js │ └── index.js ├── MapViewerStore │ ├── test │ │ └── index.test.js │ └── index.js ├── PostsPaperStore │ └── test │ │ └── index.test.js ├── TutsViewerStore │ ├── test │ │ └── index.test.js │ └── index.js ├── ThreadEditorStore │ ├── test │ │ └── index.test.js │ └── index.js ├── CheatSheetPaperStore │ └── test │ │ └── index.test.js ├── CommunitySetterStore │ ├── test │ │ └── index.test.js │ └── index.js ├── CheatSheetContentStore │ ├── test │ │ └── index.test.js │ └── index.js ├── RootStore │ └── test │ │ └── index.test.js └── init.js ├── config ├── contacts.js ├── assets.js ├── index.js └── general.js ├── .jest.config.js ├── .travis.yml ├── commitlint.config.js ├── lang └── zh.json └── pages └── api.js /docs/debugging.md: -------------------------------------------------------------------------------- 1 | # TODO 2 | -------------------------------------------------------------------------------- /docs/deployment.md: -------------------------------------------------------------------------------- 1 | # TODO 2 | -------------------------------------------------------------------------------- /docs/testing.md: -------------------------------------------------------------------------------- 1 | 2 | # TODO 3 | -------------------------------------------------------------------------------- /docs/styling.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # TODO 4 | -------------------------------------------------------------------------------- /components/FileUploader/utils.js: -------------------------------------------------------------------------------- 1 | // 2 | -------------------------------------------------------------------------------- /containers/Route/styles/index.js: -------------------------------------------------------------------------------- 1 | // import styled from 'styled-components' 2 | -------------------------------------------------------------------------------- /containers/Banner/styles/index.js: -------------------------------------------------------------------------------- 1 | // import styled from 'styled-components' 2 | -------------------------------------------------------------------------------- /containers/Content/styles/index.js: -------------------------------------------------------------------------------- 1 | // import styled from 'styled-components' 2 | -------------------------------------------------------------------------------- /containers/ArticleViwer/styles/index.js: -------------------------------------------------------------------------------- 1 | // import styled from 'styled-components' 2 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: ['@groupher/eslint-config-web'], 3 | } 4 | -------------------------------------------------------------------------------- /utils/async/index.js: -------------------------------------------------------------------------------- 1 | export { default as SR71 } from './sr71' 2 | export const holder = 1 3 | -------------------------------------------------------------------------------- /static/waji.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderplanets/coderplanets_admin/HEAD/static/waji.png -------------------------------------------------------------------------------- /static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderplanets/coderplanets_admin/HEAD/static/favicon.ico -------------------------------------------------------------------------------- /static/flag_cn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderplanets/coderplanets_admin/HEAD/static/flag_cn.png -------------------------------------------------------------------------------- /static/flag_en.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderplanets/coderplanets_admin/HEAD/static/flag_en.png -------------------------------------------------------------------------------- /deploy/dev/web.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderplanets/coderplanets_admin/HEAD/deploy/dev/web.tar.gz -------------------------------------------------------------------------------- /deploy/production/web.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coderplanets/coderplanets_admin/HEAD/deploy/production/web.tar.gz -------------------------------------------------------------------------------- /utils/uid.js: -------------------------------------------------------------------------------- 1 | import shortid from 'shortid' 2 | 3 | const uid = { 4 | gen: shortid.generate, 5 | } 6 | 7 | export default uid 8 | -------------------------------------------------------------------------------- /.agignore: -------------------------------------------------------------------------------- 1 | 2 | yarn.lock 3 | coverage 4 | ./build 5 | ./bin 6 | ./npm-debug.log 7 | .next 8 | schema.graphql 9 | LICENSE 10 | -------------------------------------------------------------------------------- /utils/constant/c11n.js: -------------------------------------------------------------------------------- 1 | const C11N = { 2 | DIGEST: 'digest', 3 | LIST: 'list', 4 | BRIEF: 'brief', 5 | } 6 | 7 | export default C11N 8 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "bracketSpacing": true, 3 | "trailingComma": "es5", 4 | "singleQuote": true, 5 | "tabWidth": 2, 6 | "semi": false 7 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .next/ 2 | node_modules/ 3 | npm-debug.log 4 | build 5 | bin 6 | 7 | lang/.messages/ 8 | coverage/ 9 | .coveralls.yml 10 | yarn-error.log 11 | .env 12 | -------------------------------------------------------------------------------- /.huskyrc: -------------------------------------------------------------------------------- 1 | { 2 | "hooks": { 3 | "pre-commit": "pretty-quick --staged && npm run lint:staged", 4 | "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /.jest.setup.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | import { configure } from 'enzyme' 3 | import Adapter from 'enzyme-adapter-react-16' 4 | 5 | configure({ adapter: new Adapter() }) 6 | -------------------------------------------------------------------------------- /components/MarkDownPreviewer/styles/index.js: -------------------------------------------------------------------------------- 1 | import styled from 'styled-components' 2 | // bbst 3 | 4 | export const PreviewerContainer = styled.div`` 5 | 6 | export const holder = 1 7 | -------------------------------------------------------------------------------- /components/MarkDownRender/styles/index.js: -------------------------------------------------------------------------------- 1 | import styled from 'styled-components' 2 | // bbst 3 | 4 | export const PreviewerContainer = styled.div`` 5 | 6 | export const holder = 1 7 | -------------------------------------------------------------------------------- /containers/Preview/tests/store.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * PreviewStore store test 3 | * 4 | */ 5 | // import PreviewStore from '../index' 6 | 7 | it('1 + 1 = 2', () => { 8 | expect(1 + 1).toBe(2) 9 | }) 10 | -------------------------------------------------------------------------------- /deploy/production/loader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cd /root/web/ 4 | 5 | pm2-runtime start npm --name "coderplanets_admin" -- run launch.prod & 6 | 7 | while true 8 | do 9 | sleep 100 10 | done 11 | -------------------------------------------------------------------------------- /stores/ThemeStore/test/index.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * ThemeStore store test 3 | * 4 | */ 5 | 6 | // import ThemeStore from '../index' 7 | 8 | it('1 + 1 = 2', () => { 9 | expect(1 + 1).toBe(2) 10 | }) 11 | -------------------------------------------------------------------------------- /stores/SharedModel/general.js: -------------------------------------------------------------------------------- 1 | export const emptyPagiData = { 2 | entries: [], 3 | pageNumber: 1, 4 | pageSize: 20, 5 | totalCount: 0, 6 | totalPages: 0, 7 | } 8 | 9 | export const holder = 1 10 | -------------------------------------------------------------------------------- /containers/TypeWriter/styles/editorStyle.js: -------------------------------------------------------------------------------- 1 | import styled from 'styled-components' 2 | 3 | export const Wrapper = styled.div` 4 | margin-left: 10px; 5 | margin-right: 10px; 6 | ` 7 | export const holder = false 8 | -------------------------------------------------------------------------------- /stores/CommunitiesStore/test/index.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * CommunityStore store test 3 | * 4 | */ 5 | 6 | // import CommunityStore from '../index' 7 | 8 | it('1 + 1 = 2', () => { 9 | expect(1 + 1).toBe(2) 10 | }) 11 | -------------------------------------------------------------------------------- /deploy/dev/loader.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cd /root/web/ 4 | # npm run launch:dev & 5 | pm2-runtime start npm --name "coderplanets_admin" -- run launch.dev & 6 | 7 | while true 8 | do 9 | sleep 100 10 | done 11 | -------------------------------------------------------------------------------- /components/UsersTable/styles/index.js: -------------------------------------------------------------------------------- 1 | import styled from 'styled-components' 2 | 3 | // import Img from '../../Img' 4 | // import { theme } from '@utils' 5 | 6 | export const Wrapper = styled.div`` 7 | export const Title = styled.div`` 8 | -------------------------------------------------------------------------------- /utils/constant/err.js: -------------------------------------------------------------------------------- 1 | const ERR = { 2 | CRAPHQL: 'CRAPHQL', 3 | PARSE_CHEATSHEET_MD: 'PARSE_CHEATSHEET_MD', 4 | NETWORK: 'NETWORK', 5 | NOT_FOUND: 'NOT_FOUND', 6 | TIMEOUT: 'TIMEOUT', 7 | } 8 | 9 | export default ERR 10 | -------------------------------------------------------------------------------- /containers/TypeWriter/styles/body_editor.js: -------------------------------------------------------------------------------- 1 | import styled from 'styled-components' 2 | 3 | export const Wrapper = styled.div` 4 | margin-left: 10px; 5 | margin-right: 10px; 6 | font-size: 0.8rem; 7 | ` 8 | export const holder = false 9 | -------------------------------------------------------------------------------- /utils/scripts/generators/component/styles.js.hbs: -------------------------------------------------------------------------------- 1 | import styled from 'styled-components' 2 | 3 | // import Img from '@Img' 4 | // import { theme } from '@utils' 5 | 6 | export const Wrapper = styled.div`` 7 | export const Title = styled.div`` 8 | -------------------------------------------------------------------------------- /containers/Banner/tests/store.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * BannerStore store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | // import BannerStore from '../index' 8 | 9 | it('BannerStore 1 + 1 = 2', () => { 10 | expect(1 + 1).toBe(2) 11 | }) 12 | -------------------------------------------------------------------------------- /containers/Labeler/tests/store.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Labeler store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | 8 | // import Labeler from '../index' 9 | 10 | it('TODO: store test Labeler', () => { 11 | expect(1 + 1).toBe(2) 12 | }) 13 | -------------------------------------------------------------------------------- /containers/UsersContent/schema.js: -------------------------------------------------------------------------------- 1 | import gql from 'graphql-tag' 2 | import { P } from '../schemas' 3 | 4 | const pagedUsers = gql` 5 | ${P.pagedUsers} 6 | ` 7 | 8 | const schema = { 9 | pagedUsers, 10 | } 11 | 12 | export default schema 13 | -------------------------------------------------------------------------------- /stores/PostsStore/test/index.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * PostsStore store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | 8 | // import PostsStore from '../index' 9 | 10 | it('TODO: test PostsStore', () => { 11 | expect(1 + 1).toBe(2) 12 | }) 13 | -------------------------------------------------------------------------------- /stores/UsersStore/test/index.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * UsersStore store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | 8 | // import UsersStore from '../index' 9 | 10 | it('TODO: test UsersStore', () => { 11 | expect(1 + 1).toBe(2) 12 | }) 13 | -------------------------------------------------------------------------------- /utils/scripts/generators/container/styles.js.hbs: -------------------------------------------------------------------------------- 1 | import styled from 'styled-components' 2 | 3 | // import Img from '@components/Img' 4 | // import { theme } from '@utils' 5 | 6 | export const Wrapper = styled.div`` 7 | export const Title = styled.div`` 8 | -------------------------------------------------------------------------------- /stores/HeaderStore/test/index.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * HeaderStore store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | // import HeaderStore from '../index' 8 | 9 | it('HeaderStore todo: 1 + 1 = 2', () => { 10 | expect(1 + 1).toBe(2) 11 | }) 12 | -------------------------------------------------------------------------------- /utils/async_suit.js: -------------------------------------------------------------------------------- 1 | import SR71 from './async/sr71' 2 | import { asyncErr, asyncRes } from './graphql_helper' 3 | import { $solver } from './mobx_helper' 4 | 5 | export default { 6 | SR71, 7 | asyncErr, 8 | asyncRes, 9 | $solver, 10 | } 11 | -------------------------------------------------------------------------------- /containers/Content/tests/store.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * ContentStore store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | 8 | // import ContentStore from '../index' 9 | 10 | it('ContentStore 1 + 1 = 2', () => { 11 | expect(1 + 1).toBe(2) 12 | }) 13 | -------------------------------------------------------------------------------- /stores/AccountStore/test/index.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * AccountStore store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | 8 | // import AccountStore from '../index' 9 | 10 | it('TODO: test AccountStore', () => { 11 | expect(1 + 1).toBe(2) 12 | }) 13 | -------------------------------------------------------------------------------- /containers/Comments/tests/store.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * CommentsStore store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | 8 | // import CommentsStore from '../index' 9 | 10 | it('TODO: test CommentsStore', () => { 11 | expect(1 + 1).toBe(2) 12 | }) 13 | -------------------------------------------------------------------------------- /containers/DocUploader/tests/store.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * DocUploader store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | 8 | // import DocUploader from '../index' 9 | 10 | it('TODO: store test DocUploader', () => { 11 | expect(1 + 1).toBe(2) 12 | }) 13 | -------------------------------------------------------------------------------- /containers/TagEditor/tests/store.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * TagEditorStore store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | 8 | // import TagEditorStore from '../index' 9 | 10 | it('TODO: test TagEditorStore', () => { 11 | expect(1 + 1).toBe(2) 12 | }) 13 | -------------------------------------------------------------------------------- /containers/TagSetter/tests/store.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * TagSetterStore store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | 8 | // import TagSetterStore from '../index' 9 | 10 | it('TODO: test TagSetterStore', () => { 11 | expect(1 + 1).toBe(2) 12 | }) 13 | -------------------------------------------------------------------------------- /containers/UsersContent/styles/index.js: -------------------------------------------------------------------------------- 1 | import styled from 'styled-components' 2 | 3 | export const Wrapper = styled.div` 4 | min-height: 800px; 5 | ` 6 | export const OperationWrapper = styled.div` 7 | display: flex; 8 | justify-content: center; 9 | ` 10 | -------------------------------------------------------------------------------- /stores/ApiLayoutStore/test/index.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * ApiLayoutStore store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | 8 | // import ApiLayoutStore from '../index' 9 | 10 | it('TODO: test ApiLayoutStore', () => { 11 | expect(1 + 1).toBe(2) 12 | }) 13 | -------------------------------------------------------------------------------- /stores/BodylayoutStore/test/index.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * BodylayoutStore store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | // import BodylayoutStore from '../index' 8 | 9 | it('BodylayoutStore 1 + 1 = 2', () => { 10 | expect(1 + 1).toBe(2) 11 | }) 12 | -------------------------------------------------------------------------------- /stores/JobsViewerStore/test/index.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * JobsViewerStore store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | // import JobsViewerStore from '../index' 8 | 9 | it('TODO: test JobsViewerStore', () => { 10 | expect(1 + 1).toBe(2) 11 | }) 12 | -------------------------------------------------------------------------------- /stores/MapViewerStore/test/index.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * MapViewerStore store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | 8 | // import MapViewerStore from '../index' 9 | 10 | it('TODO: test MapViewerStore', () => { 11 | expect(1 + 1).toBe(2) 12 | }) 13 | -------------------------------------------------------------------------------- /config/contacts.js: -------------------------------------------------------------------------------- 1 | export const EMAIL_CLUB = 'club@group.coderplanets.com' 2 | export const EMAIL_SUPPORT = 'support@group.coderplanets.com' 3 | export const EMAIL_HELLO = 'hello@group.coderplanets.com' 4 | export const EMAIL_BUSINESS = 'business@group.coderplanets.com' 5 | -------------------------------------------------------------------------------- /containers/ThreadEditor/tests/store.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * ThreadEditor store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | 8 | // import ThreadEditor from '../index' 9 | 10 | it('TODO: store test ThreadEditor', () => { 11 | expect(1 + 1).toBe(2) 12 | }) 13 | -------------------------------------------------------------------------------- /stores/CommunitiesStore/CheatSheetModal.js: -------------------------------------------------------------------------------- 1 | import { types as t } from 'mobx-state-tree' 2 | 3 | const CheatSheetModel = t.model('CheatSheetModel', { 4 | title: t.string, 5 | desc: t.string, 6 | raw: t.string, 7 | }) 8 | 9 | export default CheatSheetModel 10 | -------------------------------------------------------------------------------- /stores/PostsPaperStore/test/index.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * PostsPaperStore store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | 8 | // import PostsPaperStore from '../index' 9 | 10 | it('TODO: test PostsPaperStore', () => { 11 | expect(1 + 1).toBe(2) 12 | }) 13 | -------------------------------------------------------------------------------- /stores/TutsViewerStore/test/index.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * TutsViewerStore store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | 8 | // import TutsViewerStore from '../index' 9 | 10 | it('TODO: test TutsViewerStore', () => { 11 | expect(1 + 1).toBe(2) 12 | }) 13 | -------------------------------------------------------------------------------- /containers/TypeWriter/tests/store.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * TypeWriterStore store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | 8 | // import TypeWriterStore from '../index' 9 | 10 | it('TODO: test TypeWriterStore', () => { 11 | expect(1 + 1).toBe(2) 12 | }) 13 | -------------------------------------------------------------------------------- /containers/UsersBanner/tests/store.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * UsersBannerStore store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | 8 | // import UsersBannerStore from '../index' 9 | 10 | it('TODO: test UsersBannerStore', () => { 11 | expect(1 + 1).toBe(2) 12 | }) 13 | -------------------------------------------------------------------------------- /stores/SharedModel/Article.js: -------------------------------------------------------------------------------- 1 | import { types as t } from 'mobx-state-tree' 2 | 3 | const Article = t.model('Article', { 4 | id: t.maybeNull(t.string), 5 | title: t.maybeNull(t.string), 6 | desc: t.optional(t.string, ''), 7 | }) 8 | 9 | export default Article 10 | -------------------------------------------------------------------------------- /containers/ArticleViwer/tests/store.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * ArticleViwerStore store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | 8 | // import ArticleViwerStore from '../index' 9 | 10 | it('TODO: test ArticleViwerStore', () => { 11 | expect(1 + 1).toBe(2) 12 | }) 13 | -------------------------------------------------------------------------------- /containers/PermissionEditor/styles/community_list.js: -------------------------------------------------------------------------------- 1 | import styled from 'styled-components' 2 | 3 | // import Img from '@components/Img' 4 | // import { theme } from '@utils' 5 | 6 | export const Wrapper = styled.div` 7 | padding: 10px; 8 | ` 9 | export const Holder = 1 10 | -------------------------------------------------------------------------------- /containers/ThreadSetter/tests/store.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * ThreadSetterStore store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | 8 | // import ThreadSetterStore from '../index' 9 | 10 | it('TODO: test ThreadSetterStore', () => { 11 | expect(1 + 1).toBe(2) 12 | }) 13 | -------------------------------------------------------------------------------- /containers/UsersContent/tests/store.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * UsersContentStore store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | 8 | // import UsersContentStore from '../index' 9 | 10 | it('TODO: test UsersContentStore', () => { 11 | expect(1 + 1).toBe(2) 12 | }) 13 | -------------------------------------------------------------------------------- /stores/ThreadEditorStore/test/index.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * ThreadEditorStore store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | 8 | // import ThreadEditorStore from '../index' 9 | 10 | it('TODO: test ThreadEditorStore', () => { 11 | expect(1 + 1).toBe(2) 12 | }) 13 | -------------------------------------------------------------------------------- /utils/scripts/checkmark.js: -------------------------------------------------------------------------------- 1 | const chalk = require('chalk'); 2 | 3 | /** 4 | * Adds mark check symbol 5 | */ 6 | function addCheckMark(callback) { 7 | process.stdout.write(chalk.green(' ✓')); 8 | if (callback) callback(); 9 | } 10 | 11 | module.exports = addCheckMark; 12 | -------------------------------------------------------------------------------- /containers/AccountEditor/tests/store.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * AccountEditorStore store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | 8 | // import AccountEditorStore from '../index' 9 | 10 | it('TODO: test AccountEditorStore', () => { 11 | expect(1 + 1).toBe(2) 12 | }) 13 | -------------------------------------------------------------------------------- /containers/AccountViewer/tests/store.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * AccountViewerStore store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | 8 | // import AccountViewerStore from '../index' 9 | 10 | it('TODO: test AccountViewerStore', () => { 11 | expect(1 + 1).toBe(2) 12 | }) 13 | -------------------------------------------------------------------------------- /containers/CategoryEditor/tests/store.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * CategoryEditorStore store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | 8 | // import CategoryEditorStore from '../index' 9 | 10 | it('TODO: test CategoryEditorStore', () => { 11 | expect(1 + 1).toBe(2) 12 | }) 13 | -------------------------------------------------------------------------------- /containers/CategorySetter/tests/store.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * CategorySetterStore store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | 8 | // import CategorySetterStore from '../index' 9 | 10 | it('TODO: test CategorySetterStore', () => { 11 | expect(1 + 1).toBe(2) 12 | }) 13 | -------------------------------------------------------------------------------- /stores/CheatSheetPaperStore/test/index.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * CheatSheetPaperStore store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | 8 | // import CheatSheetStore from '../index' 9 | it('CheatSheetPaperStore todo 1 + 1 = 2', () => { 10 | expect(1 + 1).toBe(2) 11 | }) 12 | -------------------------------------------------------------------------------- /containers/CommunityBanner/tests/store.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * CommunityBannerStore store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | 8 | // import CommunityBannerStore from '../index' 9 | 10 | it('TODO: test CommunityBannerStore', () => { 11 | expect(1 + 1).toBe(2) 12 | }) 13 | -------------------------------------------------------------------------------- /containers/CommunityEditor/tests/store.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * CommunityEditorStore store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | 8 | // import CommunityEditorStore from '../index' 9 | 10 | it('TODO: test CommunityEditorStore', () => { 11 | expect(1 + 1).toBe(2) 12 | }) 13 | -------------------------------------------------------------------------------- /containers/CommunitySetter/tests/store.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * CommunitySetterStore store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | 8 | // import CommunitySetterStore from '../index' 9 | 10 | it('TODO: test CommunitySetterStore', () => { 11 | expect(1 + 1).toBe(2) 12 | }) 13 | -------------------------------------------------------------------------------- /stores/CommunitySetterStore/test/index.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * CommunitySetterStore store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | 8 | // import CommunitySetterStore from '../index' 9 | 10 | it('TODO: test CommunitySetterStore', () => { 11 | expect(1 + 1).toBe(2) 12 | }) 13 | -------------------------------------------------------------------------------- /utils/constant/payment.js: -------------------------------------------------------------------------------- 1 | export const PAYMENT_USAGE = { 2 | SENIOR: 'SENIOR', 3 | GIRLS_CODE_TOO_PLAN: 'GirlsCodeTooPlan', 4 | DONATE: 'DONATE', 5 | SPONSOR: 'SPONSOR', 6 | } 7 | 8 | export const PAYMENT_METHOD = { 9 | ALIPAY: 'ALIPAY', 10 | WECHAT: 'WECHAT', 11 | } 12 | -------------------------------------------------------------------------------- /containers/CommunityContent/tests/store.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * CommunityContentStore store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | 8 | // import CommunityContentStore from '../index' 9 | 10 | it('TODO: test CommunityContentStore', () => { 11 | expect(1 + 1).toBe(2) 12 | }) 13 | -------------------------------------------------------------------------------- /containers/PermissionEditor/tests/store.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * PermissionEditorStore store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | 8 | // import PermissionEditorStore from '../index' 9 | 10 | it('TODO: test PermissionEditorStore', () => { 11 | expect(1 + 1).toBe(2) 12 | }) 13 | -------------------------------------------------------------------------------- /utils/scripts/generators/store/store.test.js.hbs: -------------------------------------------------------------------------------- 1 | /* 2 | * {{ properCase name }} store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | 8 | // import {{ properCase name }} from '../index' 9 | 10 | it('TODO: test {{ properCase name }}', () => { 11 | expect(1 + 1).toBe(2) 12 | }) 13 | -------------------------------------------------------------------------------- /components/ThemeSelector/style/dot_selector.js: -------------------------------------------------------------------------------- 1 | import styled from 'styled-components' 2 | 3 | import { cs } from '@utils' 4 | import { Dot } from './index' 5 | 6 | export const Wrapper = styled.div` 7 | ${cs.flex('justify-center')}; 8 | ` 9 | 10 | export const ThemeDot = styled(Dot)`` 11 | -------------------------------------------------------------------------------- /containers/CommunitiesBanner/tests/store.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * CommunitiesBannerStore store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | 8 | // import CommunitiesBannerStore from '../index' 9 | 10 | it('TODO: test CommunitiesBannerStore', () => { 11 | expect(1 + 1).toBe(2) 12 | }) 13 | -------------------------------------------------------------------------------- /containers/Route/tests/index.test.js: -------------------------------------------------------------------------------- 1 | // import React from 'react' 2 | // import { shallow } from 'enzyme' 3 | 4 | // import Route from '../index' 5 | 6 | describe('', () => { 7 | it('Expect to have unit tests specified', () => { 8 | expect(true).toEqual(true) 9 | }) 10 | }) 11 | -------------------------------------------------------------------------------- /stores/CheatSheetContentStore/test/index.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * CheatSheetContentStore store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | 8 | // import CheatSheetContentStore from '../index' 9 | 10 | it('TODO: test CheatSheetContentStore', () => { 11 | expect(1 + 1).toBe(2) 12 | }) 13 | -------------------------------------------------------------------------------- /components/Maybe/tests/index.test.js: -------------------------------------------------------------------------------- 1 | // import React from 'react' 2 | // import { shallow } from 'enzyme' 3 | 4 | // import Maybe from '../index' 5 | 6 | describe('TODO ', () => { 7 | it('Expect to have unit tests specified', () => { 8 | expect(true).toEqual(true) 9 | }) 10 | }) 11 | -------------------------------------------------------------------------------- /components/Modal/tests/index.test.js: -------------------------------------------------------------------------------- 1 | // import React from 'react' 2 | // import { shallow } from 'enzyme' 3 | 4 | // import Modal from '../index' 5 | 6 | describe('TODO ', () => { 7 | it('Expect to have unit tests specified', () => { 8 | expect(true).toEqual(true) 9 | }) 10 | }) 11 | -------------------------------------------------------------------------------- /components/Pagi/tests/index.test.js: -------------------------------------------------------------------------------- 1 | // import React from 'react' 2 | // import { shallow } from 'enzyme' 3 | 4 | // import Pagi from '../index' 5 | 6 | describe('TODO ', () => { 7 | it('Expect to have unit tests specified', () => { 8 | expect(true).toEqual(true) 9 | }) 10 | }) 11 | -------------------------------------------------------------------------------- /containers/CommunitiesContent/tests/store.test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * CommunitiesContentStore store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | 8 | // import CommunitiesContentStore from '../index' 9 | 10 | it('TODO: test CommunitiesContentStore', () => { 11 | expect(1 + 1).toBe(2) 12 | }) 13 | -------------------------------------------------------------------------------- /containers/Header/tests/index.test.js: -------------------------------------------------------------------------------- 1 | // import React from 'react' 2 | // import { shallow } from 'enzyme' 3 | 4 | // import Header from '../index' 5 | 6 | describe('
', () => { 7 | it('Expect to have unit tests specified', () => { 8 | expect(true).toEqual(true) 9 | }) 10 | }) 11 | -------------------------------------------------------------------------------- /containers/Preview/tests/index.test.js: -------------------------------------------------------------------------------- 1 | // import React from 'react' 2 | // import { shallow } from 'enzyme' 3 | 4 | // import Preview from '../index' 5 | 6 | describe('', () => { 7 | it('Expect to have unit tests specified', () => { 8 | expect(true).toEqual(true) 9 | }) 10 | }) 11 | -------------------------------------------------------------------------------- /containers/Sidebar/tests/index.test.js: -------------------------------------------------------------------------------- 1 | // import React from 'react' 2 | // import { shallow } from 'enzyme' 3 | 4 | // import Sidebar from '../index' 5 | 6 | describe('', () => { 7 | it('Expect to have unit tests specified', () => { 8 | expect(true).toEqual(true) 9 | }) 10 | }) 11 | -------------------------------------------------------------------------------- /utils/scripts/generators/container/store.test.js.hbs: -------------------------------------------------------------------------------- 1 | /* 2 | * {{ properCase name }} store test 3 | * 4 | */ 5 | 6 | // import R from 'ramda' 7 | 8 | // import {{ properCase name }} from '../index' 9 | 10 | it('TODO: store test {{ properCase name }}', () => { 11 | expect(1 + 1).toBe(2) 12 | }) 13 | -------------------------------------------------------------------------------- /components/Footer/tests/index.test.js: -------------------------------------------------------------------------------- 1 | // import React from 'react' 2 | // import { shallow } from 'enzyme' 3 | 4 | // import Footer from '../index' 5 | 6 | describe('TODO