Skip to content

Commit

Permalink
style: 리뷰 폼 변수명 수정
Browse files Browse the repository at this point in the history
  • Loading branch information
Leejin-Yang committed Apr 19, 2024
1 parent 0060bf4 commit bb22d72
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ const ReviewRegisterForm = ({ productId, openBottomSheet }: ReviewRegisterFormPr
const { previewImage, imageFile, uploadImage, deleteImage } = useImageUploader();
const navigate = useNavigate();

const { reviewFormValue } = useReviewFormValueContext();
const { formValue: reviewFormValue } = useReviewFormValueContext();
const { handleReviewFormValue, resetReviewFormValue } = useReviewFormActionContext();
const { toast } = useToastActionContext();

Expand Down
2 changes: 1 addition & 1 deletion src/components/Review/ReviewTagList/ReviewTagList.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import { useReviewTagsQuery } from '@/hooks/queries/review';
const ReviewTagList = () => {
const { data: tagsData } = useReviewTagsQuery();
const {
reviewFormValue: { tags: selectedTags },
formValue: { tags: selectedTags },
} = useReviewFormValueContext();
const { handleReviewFormValue } = useReviewFormActionContext();

Expand Down
2 changes: 1 addition & 1 deletion src/components/Review/ReviewTagSheet/ReviewTagSheet.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ interface ReviewTagSheetProps {

const ReviewTagSheet = ({ close }: ReviewTagSheetProps) => {
const {
reviewFormValue: { tags },
formValue: { tags },
} = useReviewFormValueContext();

const isValid = tags.length >= MIN_DISPLAYED_TAGS_LENGTH && tags.length <= MAX_DISPLAYED_TAGS_LENGTH;
Expand Down
34 changes: 17 additions & 17 deletions src/contexts/ReviewFormContext.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,25 +10,25 @@ export interface TagValue {
name: string;
}

type ReviewFormValue = Omit<ReviewRequest, 'tagIds'> & { tags: TagValue[] };
type ReviewFormValues = Exclude<ReviewFormValue[keyof ReviewFormValue], TagValue[]> | TagValue;
type FormValue = Omit<ReviewRequest, 'tagIds'> & { tags: TagValue[] };
type FormValues = Exclude<FormValue[keyof FormValue], TagValue[]> | TagValue;

interface ReviewFormActionParams {
target: keyof ReviewFormValue;
value: ReviewFormValues;
target: keyof FormValue;
value: FormValues;
}

interface Value {
interface ReviewFormValue {
isValid: boolean;
reviewFormValue: ReviewFormValue;
formValue: FormValue;
}

interface ReviewFormAction {
handleReviewFormValue: (params: ReviewFormActionParams) => void;
resetReviewFormValue: () => void;
}

const initialReviewFormValue: ReviewFormValue = {
const initialFormValue: FormValue = {
rating: 0,
tags: [],
content: '',
Expand All @@ -38,25 +38,25 @@ const initialReviewFormValue: ReviewFormValue = {
const MIN_RATING_SCORE = 0;
const MIN_CONTENT_LENGTH = 10;

const isTagValue = (value: ReviewFormValues): value is TagValue =>
const isTagValue = (value: FormValues): value is TagValue =>
typeof value === 'object' && 'id' in value && 'name' in value;
const isSelectedTag = (tags: TagValue[], selectedTag: TagValue) => tags.some(({ id }) => id === selectedTag.id);

export const ReviewFormValueContext = createContext<Value | null>(null);
export const ReviewFormValueContext = createContext<ReviewFormValue | null>(null);
export const ReviewFormActionContext = createContext<ReviewFormAction | null>(null);

const ReviewFormProvider = ({ children }: PropsWithChildren) => {
const [reviewFormValue, setReviewFormValue] = useState(initialReviewFormValue);
const [formValue, setFormValue] = useState(initialFormValue);
const { toast } = useToastActionContext();

const isValid =
reviewFormValue.rating > MIN_RATING_SCORE &&
reviewFormValue.tags.length >= MIN_DISPLAYED_TAGS_LENGTH &&
reviewFormValue.tags.length <= MAX_DISPLAYED_TAGS_LENGTH &&
reviewFormValue.content.length >= MIN_CONTENT_LENGTH;
formValue.rating > MIN_RATING_SCORE &&
formValue.tags.length >= MIN_DISPLAYED_TAGS_LENGTH &&
formValue.tags.length <= MAX_DISPLAYED_TAGS_LENGTH &&
formValue.content.length >= MIN_CONTENT_LENGTH;

const handleReviewFormValue = ({ target, value }: ReviewFormActionParams) => {
setReviewFormValue((prev) => {
setFormValue((prev) => {
const targetValue = prev[target];

if (isTagValue(value) && Array.isArray(targetValue)) {
Expand All @@ -77,12 +77,12 @@ const ReviewFormProvider = ({ children }: PropsWithChildren) => {
};

const resetReviewFormValue = () => {
setReviewFormValue(initialReviewFormValue);
setFormValue(initialFormValue);
};

const value = {
isValid,
reviewFormValue,
formValue,
};

const reviewFormAction = {
Expand Down

0 comments on commit bb22d72

Please sign in to comment.