All files / src/features/setting/hooks use-password-settings.ts

100% Statements 7/7
100% Branches 0/0
100% Functions 2/2
100% Lines 7/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40          2x 27x                 27x   8x           5x     27x   27x                      
import { useSettingForm } from './use-setting-form';
import type { PasswordFormData } from '../schemas/password.schema';
import { passwordSchema } from '../schemas/password.schema';
import { passwordService } from '../services/password.service';
 
export const usePasswordSettings = () => {
  const settingForm = useSettingForm<PasswordFormData>(passwordSchema, {
    successMessage: 'Password updated successfully!',
    defaultValues: {
      currentPassword: '',
      newPassword: '',
      confirmPassword: '',
    },
  });
 
  const submitPassword = async (data: PasswordFormData): Promise<void> => {
    // Call API to change password
    await passwordService.changePassword({
      currentPassword: data.currentPassword,
      newPassword: data.newPassword,
    });
 
    // Clear form on success
    settingForm.reset();
  };
 
  const handleSubmit = settingForm.handleFormSubmit(submitPassword);
 
  return {
    // Form state and methods
    ...settingForm,
 
    // Password-specific actions
    handleSubmit,
 
    // Computed values
    isSubmitting: settingForm.formState.isSubmitting,
  };
};