frontend client for gemstone. decentralised workplace app

refactor: hover state

serenity a968db6c a6447abe

Changed files
+61 -45
src
+30 -22
src/components/Settings/RegisterLatticeModalContent.tsx
···
import { Loading } from "@/components/primitives/Loading";
import { Text } from "@/components/primitives/Text";
import { useFacet } from "@/lib/facet";
+
import { lighten } from "@/lib/facet/src/lib/colors";
import { registerNewLattice } from "@/lib/utils/gmstn";
import {
useOAuthAgentGuaranteed,
···
/>
</View>
<Pressable
-
style={{
-
backgroundColor: inputText.trim()
-
? semantic.primary
-
: registerError
-
? semantic.error
-
: semantic.border,
-
borderRadius: atoms.radii.lg,
-
alignItems: "center",
-
paddingVertical: 10,
-
}}
onPress={() => {
newLatticeMutation();
}}
>
-
{mutationPending ? (
-
<Loading size="small" />
-
) : (
-
<Text
-
style={[
-
typography.weights.byName.normal,
-
{ color: semantic.textInverse },
-
]}
-
>
-
Register
-
</Text>
-
)}
+
{({ hovered }) =>
+
mutationPending ? (
+
<Loading size="small" />
+
) : (
+
<View
+
style={{
+
backgroundColor: inputText.trim()
+
? hovered
+
? lighten(semantic.primary, 7)
+
: semantic.primary
+
: registerError
+
? semantic.error
+
: semantic.border,
+
borderRadius: atoms.radii.lg,
+
alignItems: "center",
+
paddingVertical: 10,
+
}}
+
>
+
<Text
+
style={[
+
typography.weights.byName.normal,
+
{ color: semantic.textInverse },
+
]}
+
>
+
Add
+
</Text>
+
</View>
+
)
+
}
</Pressable>
</View>
);
+31 -23
src/components/Settings/RegisterShardModalContent.tsx
···
import { Loading } from "@/components/primitives/Loading";
import { Text } from "@/components/primitives/Text";
import { useFacet } from "@/lib/facet";
+
import { lighten } from "@/lib/facet/src/lib/colors";
import { registerNewShard } from "@/lib/utils/gmstn";
import {
useOAuthAgentGuaranteed,
···
const agent = useOAuthAgentGuaranteed();
const session = useOAuthSessionGuaranteed();
const queryClient = useQueryClient();
-
const { queryKey: shardsQueryKey } = useShardsQuery(session)
+
const { queryKey: shardsQueryKey } = useShardsQuery(session);
const { mutate: newShardMutation, isPending: mutationPending } =
useMutation({
mutationFn: async () => {
···
/>
</View>
<Pressable
-
style={{
-
backgroundColor: inputText.trim()
-
? semantic.primary
-
: registerError
-
? semantic.error
-
: semantic.border,
-
borderRadius: atoms.radii.lg,
-
alignItems: "center",
-
paddingVertical: 10,
-
}}
onPress={() => {
newShardMutation();
}}
>
-
{mutationPending ? (
-
<Loading size="small" />
-
) : (
-
<Text
-
style={[
-
typography.weights.byName.normal,
-
{ color: semantic.textInverse },
-
]}
-
>
-
Register
-
</Text>
-
)}
+
{({ hovered }) =>
+
mutationPending ? (
+
<Loading size="small" />
+
) : (
+
<View
+
style={{
+
backgroundColor: inputText.trim()
+
? hovered
+
? lighten(semantic.primary, 7)
+
: semantic.primary
+
: registerError
+
? semantic.error
+
: semantic.border,
+
borderRadius: atoms.radii.lg,
+
alignItems: "center",
+
paddingVertical: 10,
+
}}
+
>
+
<Text
+
style={[
+
typography.weights.byName.normal,
+
{ color: semantic.textInverse },
+
]}
+
>
+
Add
+
</Text>
+
</View>
+
)
+
}
</Pressable>
</View>
);