diff options
author | Ricardo Cino <ricardo@cino.io> | 2022-06-22 00:32:18 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-06-21 22:32:18 +0000 |
commit | 73ba955e344c8ccedd43235495ef8b72b5a2b6fd (patch) | |
tree | 03766ab32fefe7e83026a14393527f1dcbaed849 /src/actions | |
parent | docs: add cino as a contributor for infra [skip ci] (#330) (diff) | |
download | ferdium-app-73ba955e344c8ccedd43235495ef8b72b5a2b6fd.tar.gz ferdium-app-73ba955e344c8ccedd43235495ef8b72b5a2b6fd.tar.zst ferdium-app-73ba955e344c8ccedd43235495ef8b72b5a2b6fd.zip |
chore: Transform AppStore.js into Typescript (#329)
* turn actions into typescript
* correct tsconfig
* added TypedStore
Diffstat (limited to 'src/actions')
-rw-r--r-- | src/actions/app.ts | 3 | ||||
-rw-r--r-- | src/actions/lib/actions.ts | 25 | ||||
-rw-r--r-- | src/actions/recipe.ts | 3 | ||||
-rw-r--r-- | src/actions/recipePreview.ts | 3 | ||||
-rw-r--r-- | src/actions/requests.ts | 4 | ||||
-rw-r--r-- | src/actions/service.ts | 3 | ||||
-rw-r--r-- | src/actions/settings.ts | 3 | ||||
-rw-r--r-- | src/actions/ui.ts | 3 | ||||
-rw-r--r-- | src/actions/user.ts | 3 |
9 files changed, 41 insertions, 9 deletions
diff --git a/src/actions/app.ts b/src/actions/app.ts index e6f7f22ba..a798a8b0b 100644 --- a/src/actions/app.ts +++ b/src/actions/app.ts | |||
@@ -1,6 +1,7 @@ | |||
1 | import PropTypes from 'prop-types'; | 1 | import PropTypes from 'prop-types'; |
2 | import { ActionDefinitions } from './lib/actions'; | ||
2 | 3 | ||
3 | export default { | 4 | export default <ActionDefinitions>{ |
4 | setBadge: { | 5 | setBadge: { |
5 | unreadDirectMessageCount: PropTypes.number.isRequired, | 6 | unreadDirectMessageCount: PropTypes.number.isRequired, |
6 | unreadIndirectMessageCount: PropTypes.number, | 7 | unreadIndirectMessageCount: PropTypes.number, |
diff --git a/src/actions/lib/actions.ts b/src/actions/lib/actions.ts index 412a0d895..378cef574 100644 --- a/src/actions/lib/actions.ts +++ b/src/actions/lib/actions.ts | |||
@@ -1,4 +1,27 @@ | |||
1 | export const createActionsFromDefinitions = (actionDefinitions, validate) => { | 1 | import PropTypes from 'prop-types'; |
2 | |||
3 | export interface ActionDefinitions { | ||
4 | [key: string]: { | ||
5 | [key: string]: PropTypes.InferType<any>; | ||
6 | }; | ||
7 | } | ||
8 | |||
9 | export interface Actions { | ||
10 | [key: string]: { | ||
11 | [key: string]: { | ||
12 | (...args: any[]): void; | ||
13 | listeners: Array<Function>; | ||
14 | notify: (params: any) => void; | ||
15 | listen: (listener: (params: any) => void) => void; | ||
16 | off: (listener: (params: any) => void) => void; | ||
17 | }; | ||
18 | }; | ||
19 | } | ||
20 | |||
21 | export const createActionsFromDefinitions = ( | ||
22 | actionDefinitions: ActionDefinitions, | ||
23 | validate: any, | ||
24 | ) => { | ||
2 | const actions = {}; | 25 | const actions = {}; |
3 | // eslint-disable-next-line unicorn/no-array-for-each | 26 | // eslint-disable-next-line unicorn/no-array-for-each |
4 | Object.keys(actionDefinitions).forEach(actionName => { | 27 | Object.keys(actionDefinitions).forEach(actionName => { |
diff --git a/src/actions/recipe.ts b/src/actions/recipe.ts index 29b0a151f..0dd92737f 100644 --- a/src/actions/recipe.ts +++ b/src/actions/recipe.ts | |||
@@ -1,6 +1,7 @@ | |||
1 | import PropTypes from 'prop-types'; | 1 | import PropTypes from 'prop-types'; |
2 | import { ActionDefinitions } from './lib/actions'; | ||
2 | 3 | ||
3 | export default { | 4 | export default <ActionDefinitions>{ |
4 | install: { | 5 | install: { |
5 | recipeId: PropTypes.string.isRequired, | 6 | recipeId: PropTypes.string.isRequired, |
6 | update: PropTypes.bool, | 7 | update: PropTypes.bool, |
diff --git a/src/actions/recipePreview.ts b/src/actions/recipePreview.ts index 36de3d844..053b363e9 100644 --- a/src/actions/recipePreview.ts +++ b/src/actions/recipePreview.ts | |||
@@ -1,6 +1,7 @@ | |||
1 | import PropTypes from 'prop-types'; | 1 | import PropTypes from 'prop-types'; |
2 | import { ActionDefinitions } from './lib/actions'; | ||
2 | 3 | ||
3 | export default { | 4 | export default <ActionDefinitions>{ |
4 | search: { | 5 | search: { |
5 | needle: PropTypes.string.isRequired, | 6 | needle: PropTypes.string.isRequired, |
6 | }, | 7 | }, |
diff --git a/src/actions/requests.ts b/src/actions/requests.ts index 89296e7ec..0b4c905ee 100644 --- a/src/actions/requests.ts +++ b/src/actions/requests.ts | |||
@@ -1,3 +1,5 @@ | |||
1 | export default { | 1 | import { ActionDefinitions } from './lib/actions'; |
2 | |||
3 | export default <ActionDefinitions>{ | ||
2 | retryRequiredRequests: {}, | 4 | retryRequiredRequests: {}, |
3 | }; | 5 | }; |
diff --git a/src/actions/service.ts b/src/actions/service.ts index aa02c860a..4b43fc2ca 100644 --- a/src/actions/service.ts +++ b/src/actions/service.ts | |||
@@ -1,7 +1,8 @@ | |||
1 | import PropTypes from 'prop-types'; | 1 | import PropTypes from 'prop-types'; |
2 | import ServiceModel from '../models/Service'; | 2 | import ServiceModel from '../models/Service'; |
3 | import { ActionDefinitions } from './lib/actions'; | ||
3 | 4 | ||
4 | export default { | 5 | export default <ActionDefinitions>{ |
5 | setActive: { | 6 | setActive: { |
6 | serviceId: PropTypes.string.isRequired, | 7 | serviceId: PropTypes.string.isRequired, |
7 | keepActiveRoute: PropTypes.bool, | 8 | keepActiveRoute: PropTypes.bool, |
diff --git a/src/actions/settings.ts b/src/actions/settings.ts index fd29b798b..4796f6a02 100644 --- a/src/actions/settings.ts +++ b/src/actions/settings.ts | |||
@@ -1,6 +1,7 @@ | |||
1 | import PropTypes from 'prop-types'; | 1 | import PropTypes from 'prop-types'; |
2 | import { ActionDefinitions } from './lib/actions'; | ||
2 | 3 | ||
3 | export default { | 4 | export default <ActionDefinitions>{ |
4 | update: { | 5 | update: { |
5 | type: PropTypes.string.isRequired, | 6 | type: PropTypes.string.isRequired, |
6 | data: PropTypes.object.isRequired, | 7 | data: PropTypes.object.isRequired, |
diff --git a/src/actions/ui.ts b/src/actions/ui.ts index b913b430b..7d2dbccfa 100644 --- a/src/actions/ui.ts +++ b/src/actions/ui.ts | |||
@@ -1,6 +1,7 @@ | |||
1 | import PropTypes from 'prop-types'; | 1 | import PropTypes from 'prop-types'; |
2 | import { ActionDefinitions } from './lib/actions'; | ||
2 | 3 | ||
3 | export default { | 4 | export default <ActionDefinitions>{ |
4 | openSettings: { | 5 | openSettings: { |
5 | path: PropTypes.string, | 6 | path: PropTypes.string, |
6 | }, | 7 | }, |
diff --git a/src/actions/user.ts b/src/actions/user.ts index 15a9216bd..c0ede619e 100644 --- a/src/actions/user.ts +++ b/src/actions/user.ts | |||
@@ -1,6 +1,7 @@ | |||
1 | import PropTypes from 'prop-types'; | 1 | import PropTypes from 'prop-types'; |
2 | import { ActionDefinitions } from './lib/actions'; | ||
2 | 3 | ||
3 | export default { | 4 | export default <ActionDefinitions>{ |
4 | login: { | 5 | login: { |
5 | email: PropTypes.string.isRequired, | 6 | email: PropTypes.string.isRequired, |
6 | password: PropTypes.string.isRequired, | 7 | password: PropTypes.string.isRequired, |