├── __tests ├── config │ ├── fileMock.js │ ├── setupTests.js │ └── componentsMock.js └── src │ ├── routes │ └── index.test.js │ ├── screens │ └── Home │ │ └── Home.test.js │ ├── components │ ├── Home │ │ ├── Path.test.js │ │ └── HelloWorld.test.js │ └── @shared │ │ ├── Footer.test.js │ │ └── Header.test.js │ └── layouts │ └── App.test.js ├── .npmignore ├── __assets ├── Icon.jpg ├── Gallery1.jpg ├── Gallery2.jpg ├── Gallery3.jpg ├── Gallery4.jpg ├── PromoMarquee.jpg ├── ScreenshotTrackerPromo.gif ├── ScreenshotTrackerPromo.mp4 ├── ScreenshotTrackerPromo.prd └── for_github_readme │ ├── Gallery1.jpg │ ├── Gallery2.jpg │ ├── Gallery3.jpg │ ├── Gallery4.jpg │ └── PromoMarquee.jpg ├── public ├── appicon_256.png ├── appicon_512.png └── index.html ├── sentry.js ├── src ├── constants.js ├── .nomad-codecheckrc.js ├── store.js ├── reducers.js ├── styles │ ├── ant.vars.scss │ └── app.global.scss ├── routes.js ├── electron_listeners.js ├── index.js ├── actions.js ├── screens │ ├── home.js │ ├── run_list.js │ ├── about.js │ ├── new_run.js │ └── run_result.js └── layout.js ├── .editorconfig ├── postcss.config.js ├── .babelrc ├── .eslintrc.js ├── scripts └── notarize.js ├── .gitignore ├── LICENSE ├── storage.js ├── README.md ├── webpack.config.babel.js ├── package.json └── main.js /__tests/config/fileMock.js: -------------------------------------------------------------------------------- 1 | export default 'file' 2 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | _ignore/ 2 | docs/ 3 | release/ 4 | dist/ 5 | .editorconfig 6 | __snapshots__ 7 | 8 | -------------------------------------------------------------------------------- /__assets/Icon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nomadinteractive/screenshot-tracker/HEAD/__assets/Icon.jpg -------------------------------------------------------------------------------- /__assets/Gallery1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nomadinteractive/screenshot-tracker/HEAD/__assets/Gallery1.jpg -------------------------------------------------------------------------------- /__assets/Gallery2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nomadinteractive/screenshot-tracker/HEAD/__assets/Gallery2.jpg -------------------------------------------------------------------------------- /__assets/Gallery3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nomadinteractive/screenshot-tracker/HEAD/__assets/Gallery3.jpg -------------------------------------------------------------------------------- /__assets/Gallery4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nomadinteractive/screenshot-tracker/HEAD/__assets/Gallery4.jpg -------------------------------------------------------------------------------- /public/appicon_256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nomadinteractive/screenshot-tracker/HEAD/public/appicon_256.png -------------------------------------------------------------------------------- /public/appicon_512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nomadinteractive/screenshot-tracker/HEAD/public/appicon_512.png -------------------------------------------------------------------------------- /__assets/PromoMarquee.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nomadinteractive/screenshot-tracker/HEAD/__assets/PromoMarquee.jpg -------------------------------------------------------------------------------- /__assets/ScreenshotTrackerPromo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nomadinteractive/screenshot-tracker/HEAD/__assets/ScreenshotTrackerPromo.gif -------------------------------------------------------------------------------- /__assets/ScreenshotTrackerPromo.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nomadinteractive/screenshot-tracker/HEAD/__assets/ScreenshotTrackerPromo.mp4 -------------------------------------------------------------------------------- /__assets/ScreenshotTrackerPromo.prd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nomadinteractive/screenshot-tracker/HEAD/__assets/ScreenshotTrackerPromo.prd -------------------------------------------------------------------------------- /sentry.js: -------------------------------------------------------------------------------- 1 | const Sentry = require('@sentry/electron') 2 | 3 | Sentry.init({ dsn: 'https://09f1b01e6e5d40d5a6e5a8135cc5cd55@sentry.io/4867322' }) 4 | -------------------------------------------------------------------------------- /__assets/for_github_readme/Gallery1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nomadinteractive/screenshot-tracker/HEAD/__assets/for_github_readme/Gallery1.jpg -------------------------------------------------------------------------------- /__assets/for_github_readme/Gallery2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nomadinteractive/screenshot-tracker/HEAD/__assets/for_github_readme/Gallery2.jpg -------------------------------------------------------------------------------- /__assets/for_github_readme/Gallery3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nomadinteractive/screenshot-tracker/HEAD/__assets/for_github_readme/Gallery3.jpg -------------------------------------------------------------------------------- /__assets/for_github_readme/Gallery4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nomadinteractive/screenshot-tracker/HEAD/__assets/for_github_readme/Gallery4.jpg -------------------------------------------------------------------------------- /__assets/for_github_readme/PromoMarquee.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nomadinteractive/screenshot-tracker/HEAD/__assets/for_github_readme/PromoMarquee.jpg -------------------------------------------------------------------------------- /src/constants.js: -------------------------------------------------------------------------------- 1 | 2 | export const LIST_RUNS_SUCCESS = 'LIST_RUNS_SUCCESS' 3 | export const NEW_RUN_SUCCESS = 'NEW_RUN_SUCCESS' 4 | 5 | export default {} 6 | -------------------------------------------------------------------------------- /__tests/config/setupTests.js: -------------------------------------------------------------------------------- 1 | // Libs 2 | import { configure } from "enzyme"; 3 | import Adapter from "enzyme-adapter-react-16"; 4 | // Adapter 5 | configure({ adapter: new Adapter() }); 6 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | 3 | root = true 4 | 5 | [*] 6 | charset = utf-8 7 | end_of_line = crlf 8 | indent_size = 2 9 | indent_style = space 10 | insert_final_newline = true 11 | trim_trailing_whitespace = true 12 | 13 | [*.md] 14 | trim_trailing_whitespace = false 15 | -------------------------------------------------------------------------------- /src/.nomad-codecheckrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "rules": [ 3 | // "branch-name-lint", 4 | // "no-assets-outside-assets-folder", 5 | // "no-network-request-outside-network-managers-folder", 6 | // "no-storage-outside-persistent-data-managers-folder", 7 | ] 8 | } -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Screenshot Tracker 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | -------------------------------------------------------------------------------- /src/store.js: -------------------------------------------------------------------------------- 1 | import { createStore, applyMiddleware, compose } from 'redux' 2 | import thunk from 'redux-thunk' 3 | 4 | import rootReducer from './reducers' 5 | 6 | const storeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose // eslint-disable-line 7 | 8 | export default createStore( 9 | rootReducer, 10 | storeEnhancers(applyMiddleware(thunk)) 11 | ) 12 | -------------------------------------------------------------------------------- /__tests/src/routes/index.test.js: -------------------------------------------------------------------------------- 1 | // Libs 2 | import React from "react"; 3 | import { shallow } from "enzyme"; 4 | import toJson from "enzyme-to-json"; 5 | 6 | // Module 7 | import Root from "@/routes/Root"; 8 | 9 | describe("Routes", () => { 10 | it('should render correctly in "debug" mode', () => { 11 | const component = shallow(); 12 | expect(toJson(component)).toMatchSnapshot(); 13 | }); 14 | }); 15 | -------------------------------------------------------------------------------- /src/reducers.js: -------------------------------------------------------------------------------- 1 | import { 2 | LIST_RUNS_SUCCESS, 3 | } from './constants' 4 | 5 | const initialState = { 6 | runs: [], 7 | } 8 | 9 | export default function (state = initialState, action) { 10 | // console.log('---> Reducer Update ', action) 11 | switch (action.type) { 12 | case LIST_RUNS_SUCCESS: 13 | return { 14 | ...state, 15 | runs: action.runs 16 | } 17 | default: 18 | return state 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /__tests/src/screens/Home/Home.test.js: -------------------------------------------------------------------------------- 1 | // Libs 2 | import React from "react"; 3 | import { shallow } from "enzyme"; 4 | import toJson from "enzyme-to-json"; 5 | // Module 6 | import Home from "@/screens/Home/Home.js"; 7 | 8 | describe("Screen Home", () => { 9 | it('should render correctly in "debug" mode', () => { 10 | const component = shallow(); 11 | expect(toJson(component)).toMatchSnapshot(); 12 | }); 13 | }); 14 | -------------------------------------------------------------------------------- /__tests/src/components/Home/Path.test.js: -------------------------------------------------------------------------------- 1 | // Libs 2 | import React from "react"; 3 | import { shallow } from "enzyme"; 4 | import toJson from "enzyme-to-json"; 5 | // Module 6 | import Path from "@/components/Home/Path"; 7 | 8 | describe("Component Path", () => { 9 | it('should render correctly in "debug" mode', () => { 10 | const component = shallow(); 11 | expect(toJson(component)).toMatchSnapshot(); 12 | 13 | }); 14 | }); 15 | -------------------------------------------------------------------------------- /__tests/config/componentsMock.js: -------------------------------------------------------------------------------- 1 | // Libs 2 | import React from "react"; 3 | import PropTypes from "prop-types"; 4 | 5 | module.exports = new Proxy( 6 | {}, 7 | { 8 | get: (target, property) => { 9 | const Mock = ({ children }) => {children}; 10 | 11 | Mock.displayName = property; 12 | Mock.propTypes = { 13 | children: PropTypes.any 14 | }; 15 | 16 | return Mock; 17 | } 18 | } 19 | ); 20 | -------------------------------------------------------------------------------- /__tests/src/components/@shared/Footer.test.js: -------------------------------------------------------------------------------- 1 | // Libs 2 | import React from "react"; 3 | import { shallow } from "enzyme"; 4 | import toJson from "enzyme-to-json"; 5 | // Module 6 | import Footer from "@/components/@shared/Footer"; 7 | 8 | describe("Component Footer", () => { 9 | it('should render correctly in "debug" mode', () => { 10 | const component = shallow(