registrationFlow.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. import { defineStore } from 'pinia';
  2. import { ref } from 'vue';
  3. export const useRegistrationFlowStore = defineStore('registrationFlow', () => {
  4. const email = ref('');
  5. const phone = ref('');
  6. const code = ref('');
  7. const initialLat = ref(null);
  8. const initialLng = ref(null);
  9. const confirmedLat = ref(null);
  10. const confirmedLng = ref(null);
  11. const confirmedAddress = ref('');
  12. const confirmedNumber = ref('');
  13. const confirmedDistrict = ref('');
  14. const confirmedCity = ref('');
  15. const confirmedState = ref('');
  16. const confirmedZipCode = ref('');
  17. const setCredentials = (e, p, c) => {
  18. email.value = e;
  19. phone.value = p;
  20. code.value = c;
  21. };
  22. const setInitialLocation = (lat, lng) => {
  23. initialLat.value = lat;
  24. initialLng.value = lng;
  25. };
  26. const setConfirmedLocation = (data) => {
  27. confirmedLat.value = data.lat;
  28. confirmedLng.value = data.lng;
  29. confirmedAddress.value = data.address ?? '';
  30. confirmedNumber.value = data.number ?? '';
  31. confirmedDistrict.value = data.district ?? '';
  32. confirmedCity.value = data.city ?? '';
  33. confirmedState.value = data.state ?? '';
  34. confirmedZipCode.value = data.zip_code ?? '';
  35. };
  36. const clear = () => {
  37. email.value = '';
  38. phone.value = '';
  39. code.value = '';
  40. initialLat.value = null;
  41. initialLng.value = null;
  42. confirmedLat.value = null;
  43. confirmedLng.value = null;
  44. confirmedAddress.value = '';
  45. confirmedNumber.value = '';
  46. confirmedDistrict.value = '';
  47. confirmedCity.value = '';
  48. confirmedState.value = '';
  49. confirmedZipCode.value = '';
  50. };
  51. const hasCredentials = () => !!(email.value || phone.value) && !!code.value;
  52. const hasInitialLocation = () => initialLat.value !== null && initialLng.value !== null;
  53. const hasConfirmedLocation = () => confirmedLat.value !== null && confirmedLng.value !== null;
  54. return {
  55. email, phone, code,
  56. initialLat, initialLng,
  57. confirmedLat, confirmedLng,
  58. confirmedAddress, confirmedNumber, confirmedDistrict,
  59. confirmedCity, confirmedState, confirmedZipCode,
  60. setCredentials,
  61. setInitialLocation,
  62. setConfirmedLocation,
  63. clear,
  64. hasCredentials,
  65. hasInitialLocation,
  66. hasConfirmedLocation,
  67. };
  68. });