Dwayne Harris 4 years ago
parent
commit
5f034e0f2d
  1. 2
      src/components/composer.tsx
  2. 6
      src/components/group-invitations.tsx
  3. 16
      src/components/pages/edit-app.tsx
  4. 8
      src/components/pages/self.tsx
  5. 4
      src/reducers/entities.ts
  6. 2
      src/reducers/lists.ts
  7. 4
      src/reducers/requests.ts
  8. 3
      src/selectors/index.ts
  9. 12
      src/utils/index.ts
  10. 6
      src/utils/normalization.ts

2
src/components/composer.tsx

@ -61,7 +61,7 @@ const Composer: FC<Props> = ({ parent, onPost }) => {
}
const withRateLimit = async (fn: (data: IncomingMessageData) => Promise<void>, data: IncomingMessageData, ms: number = 2000) => {
const last = limiters[data.name] || 0
const last = limiters[data.name] ?? 0
if ((Date.now() - last) > ms) {
await fn(data)

6
src/components/group-invitations.tsx

@ -90,9 +90,9 @@ const GroupInvitations: FC<Props> = ({ group }) => {
<tr key={invitation.id}>
<td>{invitation.id}</td>
<td><Link to={`/u/${invitation.user.id}`}>{invitation.user.id}</Link></td>
<td>{invitation.uses || 0}</td>
<td>{invitation.limit || 'None'}</td>
<td>{invitation.expiration || 'Never'}</td>
<td>{invitation.uses ?? 0}</td>
<td>{invitation.limit ?? 'None'}</td>
<td>{invitation.expiration ?? 'Never'}</td>
<td>{moment(invitation.created).format('MMMM Do YYYY, h:mm:ss a')}</td>
</tr>
))}

16
src/components/pages/edit-app.tsx

@ -63,15 +63,15 @@ const EditApp: FC = () => {
dispatch(initForm())
dispatch(initField('name', app.name))
dispatch(initField('about', app.about || ''))
dispatch(initField('websiteUrl', app.websiteUrl || ''))
dispatch(initField('companyName', app.companyName || ''))
dispatch(initField('about', app.about ?? ''))
dispatch(initField('websiteUrl', app.websiteUrl ?? ''))
dispatch(initField('companyName', app.companyName ?? ''))
dispatch(initField('version', ''))
dispatch(initField('composerUrl', app.composerUrl || ''))
dispatch(initField('rendererUrl', app.rendererUrl || ''))
dispatch(initField('image', app.imageUrl || ''))
dispatch(initField('coverImage', app.coverImageUrl || ''))
dispatch(initField('iconImage', app.iconImageUrl || ''))
dispatch(initField('composerUrl', app.composerUrl ?? ''))
dispatch(initField('rendererUrl', app.rendererUrl ?? ''))
dispatch(initField('image', app.imageUrl ?? ''))
dispatch(initField('coverImage', app.coverImageUrl ?? ''))
dispatch(initField('iconImage', app.iconImageUrl ?? ''))
}
}, [app])

8
src/components/pages/self.tsx

@ -82,11 +82,11 @@ const Self: FC = () => {
dispatch(initForm())
dispatch(initField('name', user.name))
dispatch(initField('about', user.about || ''))
dispatch(initField('about', user.about ?? ''))
dispatch(initField('requiresApproval', user.requiresApproval))
dispatch(initField('privacy', user.privacy))
dispatch(initField('image', user.imageUrl || ''))
dispatch(initField('coverImage', user.coverImageUrl || ''))
dispatch(initField('image', user.imageUrl ?? ''))
dispatch(initField('coverImage', user.coverImageUrl ?? ''))
dispatch(initField('theme', user.theme))
dispatch(initField('allowThemeChange', user.settings.allowThemeChange))
}
@ -97,7 +97,7 @@ const Self: FC = () => {
return (
<div>
<Section>
<Title>{user.name || user.id}</Title>
<Title>{user.name ?? user.id}</Title>
<Subtitle>@{user.id}</Subtitle>
<HorizontalRule />

4
src/reducers/entities.ts

@ -10,8 +10,8 @@ const reducer: Reducer<EntitiesState, EntitiesActions> = (state = initialState,
switch (action.type) {
case 'ENTITIES_SET_ENTITY': {
const { type, entity } = action.payload
const collection = state[type] || {}
const existing = collection[entity.id] || {}
const collection = state[type] ?? {}
const existing = collection[entity.id] ?? {}
return {
...state,

2
src/reducers/lists.ts

@ -8,7 +8,7 @@ const initialState: EntityListsState = {}
const reducer: Reducer<EntityListsState, ListsActions> = (state = initialState, action) => {
switch (action.type) {
case 'LISTS_APPEND':
const list = state[action.payload.key] || {
const list = state[action.payload.key] ?? {
entities: [],
continuation: undefined,
checked: 0,

4
src/reducers/requests.ts

@ -8,7 +8,7 @@ const initialState: RequestsState = {}
const reducer: Reducer<RequestsState, RequestsActions> = (state = initialState, action) => {
switch (action.type) {
case 'REQUESTS_START_REQUEST': {
const request = state[action.payload.id] || {}
const request = state[action.payload.id] ?? {}
return {
...state,
@ -21,7 +21,7 @@ const reducer: Reducer<RequestsState, RequestsActions> = (state = initialState,
}
}
case 'REQUESTS_FINISH_REQUEST': {
const request = state[action.payload.id] || {}
const request = state[action.payload.id] ?? {}
return {
...state,

3
src/selectors/index.ts

@ -5,9 +5,8 @@ import { AppState } from '../types'
export const getNotifications = (state: AppState) => state.notifications
export const getRequests = (state: AppState) => state.requests
export const getConfig = (state: AppState) => state.config
export const getFetching = createSelector(getRequests, requests => {
return values(requests).reduce((fetching, request) => fetching || request.fetching, false)
})
export const getConfig = (state: AppState) => state.config

12
src/utils/index.ts

@ -2,27 +2,17 @@ import getConfig from 'src/config'
import themes from 'src/themes'
import {
NotificationType,
Form,
FormValue,
Config,
ClassDictionary,
} from 'src/types'
export function notificationTypeToClassName(type: NotificationType): string {
switch (type) {
case NotificationType.Info: return 'is-info'
case NotificationType.Success: return 'is-success'
case NotificationType.Error: return 'is-danger'
case NotificationType.Welcome: return 'is-success'
}
}
export const objectToQuerystring = (obj: object) => Object.entries(obj).filter(([_, value]) => value !== undefined).map(([name, value]) => `${name}=${value}`).join('&')
export function setTitle(title: string, decorate: boolean = true) {
if (decorate) {
document.title = `${title} - Flexor`
document.title = `${title} \ Flexor`
} else {
document.title = title
}

6
src/utils/normalization.ts

@ -24,8 +24,8 @@ export interface NormalizeResult {
function set(type: EntityType, store: EntityStore, entity?: Entity): string | undefined {
if (!entity) return
const collection = store[type] || {}
const existing = collection[entity.id] || {}
const collection = store[type] ?? {}
const existing = collection[entity.id] ?? {}
collection[entity.id] = {
...existing,
@ -39,7 +39,7 @@ function set(type: EntityType, store: EntityStore, entity?: Entity): string | un
function get(type: EntityType, store: EntityStore, id?: string): Entity | undefined {
if (!id) return
const collection = store[type] || {}
const collection = store[type] ?? {}
return collection[id]
}

Loading…
Cancel
Save