@hoddy-ui/core 1.0.82 → 1.0.83

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hoddy-ui/core",
3
- "version": "1.0.82",
3
+ "version": "1.0.83",
4
4
  "description": "Core rich react native components written in typescript",
5
5
  "main": "index.ts",
6
6
  "repository": {
@@ -1,7 +1,12 @@
1
1
  import { Ionicons } from "@expo/vector-icons";
2
2
  import * as Haptics from "expo-haptics";
3
3
  import { FC, useEffect, useState } from "react";
4
- import { TextInput, TouchableOpacity, View } from "react-native";
4
+ import {
5
+ ActivityIndicator,
6
+ TextInput,
7
+ TouchableOpacity,
8
+ View,
9
+ } from "react-native";
5
10
  import { ScaledSheet } from "react-native-size-matters";
6
11
  import { useColors } from "../hooks";
7
12
  import { RatingInputProps, RatingStarsProps } from "../types";
@@ -41,7 +46,6 @@ export const RatingStars: FC<RatingStarsProps> = ({
41
46
  export const RatingInput: FC<RatingInputProps> = ({
42
47
  onSubmit: _onSubmit,
43
48
  rating = 0,
44
- noReview,
45
49
  size = 16,
46
50
  }) => {
47
51
  const [showReviewsModal, setShowReviewsModal] = useState(false);
@@ -57,7 +61,7 @@ export const RatingInput: FC<RatingInputProps> = ({
57
61
  inputCon: {
58
62
  marginBottom: "20@vs",
59
63
  backgroundColor: colors.white[3],
60
- padding: "10@ms",
64
+ padding: "15@ms",
61
65
  borderRadius: 20,
62
66
  },
63
67
  input: {
@@ -67,10 +71,6 @@ export const RatingInput: FC<RatingInputProps> = ({
67
71
  },
68
72
  });
69
73
 
70
- useEffect(() => {
71
- if (noReview && rate) onSubmit();
72
- }, [rate, noReview]);
73
-
74
74
  useEffect(() => {
75
75
  setRate(rating);
76
76
  }, [rating]);
@@ -78,37 +78,40 @@ export const RatingInput: FC<RatingInputProps> = ({
78
78
  setRate(index + 1);
79
79
  Haptics.selectionAsync();
80
80
 
81
- if (!noReview)
82
- setTimeout(() => {
83
- setShowReviewsModal(true);
84
- }, 500);
81
+ setTimeout(() => {
82
+ setShowReviewsModal(true);
83
+ }, 500);
85
84
  };
86
85
 
87
86
  const onSubmit = async () => {
88
87
  setLoading(true);
89
- _onSubmit && (await _onSubmit({ rating: rate, review }));
90
88
  setShowReviewsModal(false);
89
+ _onSubmit && (await _onSubmit({ rating: rate, review }));
91
90
  setLoading(false);
92
91
  };
93
92
  return (
94
93
  <>
95
94
  <View style={styles.root}>
96
- {[...Array(5)].map((_, index) => (
97
- <TouchableOpacity
98
- key={index}
99
- activeOpacity={0.9}
100
- onPress={() => {
101
- onRate(index);
102
- }}
103
- >
104
- <Ionicons
105
- style={{ marginLeft: 10 }}
106
- name={index < rate ? "star" : "star-outline"}
107
- size={size}
108
- color={colors.primary.light}
109
- />
110
- </TouchableOpacity>
111
- ))}
95
+ {loading ? (
96
+ <ActivityIndicator />
97
+ ) : (
98
+ [...Array(5)].map((_, index) => (
99
+ <TouchableOpacity
100
+ key={index}
101
+ activeOpacity={0.9}
102
+ onPress={() => {
103
+ onRate(index);
104
+ }}
105
+ >
106
+ <Ionicons
107
+ style={{ marginLeft: 10 }}
108
+ name={index < rate ? "star" : "star-outline"}
109
+ size={size}
110
+ color={colors.primary.light}
111
+ />
112
+ </TouchableOpacity>
113
+ ))
114
+ )}
112
115
  </View>
113
116
  <Popup
114
117
  sheet
@@ -138,7 +141,6 @@ export const RatingInput: FC<RatingInputProps> = ({
138
141
  <TextInput
139
142
  style={styles.input}
140
143
  multiline
141
- placeholderTextColor={colors.textSecondary.main}
142
144
  value={review}
143
145
  onChangeText={(text) => setReview(text)}
144
146
  placeholder="Type review here.."