Refactored editShortUrl action to require just one param

This commit is contained in:
Alejandro Celaya
2022-11-06 11:59:39 +01:00
parent bf84e4a2ed
commit 77cbb8ebc4
3 changed files with 12 additions and 9 deletions

View File

@@ -14,8 +14,7 @@ import { ShlinkApiError } from '../api/ShlinkApiError';
import { useGoBack, useToggle } from '../utils/helpers/hooks';
import { ShortUrlFormProps } from './ShortUrlForm';
import { ShortUrlDetail } from './reducers/shortUrlDetail';
import { EditShortUrlData } from './data';
import { ShortUrlEdition } from './reducers/shortUrlEdition';
import { EditShortUrl as EditShortUrlInfo, ShortUrlEdition } from './reducers/shortUrlEdition';
import { shortUrlDataFromShortUrl, urlDecodeShortCode } from './helpers';
interface EditShortUrlConnectProps {
@@ -24,7 +23,7 @@ interface EditShortUrlConnectProps {
shortUrlDetail: ShortUrlDetail;
shortUrlEdition: ShortUrlEdition;
getShortUrlDetail: (shortCode: string, domain: OptionalString) => void;
editShortUrl: (shortUrl: string, domain: OptionalString, data: EditShortUrlData) => Promise<void>;
editShortUrl: (editShortUrl: EditShortUrlInfo) => Promise<void>;
}
export const EditShortUrl = (ShortUrlForm: FC<ShortUrlFormProps>) => ({
@@ -89,7 +88,7 @@ export const EditShortUrl = (ShortUrlForm: FC<ShortUrlFormProps>) => ({
}
isNotSuccessful();
editShortUrl(shortUrl.shortCode, shortUrl.domain, shortUrlData)
editShortUrl({ ...shortUrl, data: shortUrlData })
.then(isSuccessful)
.catch(isNotSuccessful);
}}

View File

@@ -20,6 +20,12 @@ export interface ShortUrlEdition {
errorData?: ProblemDetailsError;
}
export interface EditShortUrl {
shortCode: string;
domain?: OptionalString;
data: EditShortUrlData;
}
export type ShortUrlEditedAction = PayloadAction<ShortUrl>;
const initialState: ShortUrlEdition = {
@@ -34,9 +40,7 @@ export default buildReducer<ShortUrlEdition, ShortUrlEditedAction & ApiErrorActi
}, initialState);
export const editShortUrl = (buildShlinkApiClient: ShlinkApiClientBuilder) => (
shortCode: string,
domain: OptionalString,
data: EditShortUrlData,
{ shortCode, domain, data }: EditShortUrl,
) => async (dispatch: Dispatch, getState: GetState) => {
dispatch({ type: EDIT_SHORT_URL_START });