import React from "react" import { Scrollbars } from 'react-custom-scrollbars' import { Block } from "baseui/block" import { useEffect, useState } from 'react' import ListLoadingPlaceholder from '~/components/ListLoadingPlaceholder' import { Text,Box, TapArea, Column, Mask, Image, TextField } from "gestalt" import { HeaderText, TransformImage } from "geru-components" import { useMediaQuery } from 'react-responsive' import { useEditor, useActiveObject } from "@layerhub-io/react" import { colors } from 'geru-components/dist/utils' import {fetchPacksWithParams} from "../../../utils/services" import { currencyFormat, getImageDimensions } from '../../../utils/helper' import useAppContext from '~/hooks/useAppContext' import { motion, LayoutGroup } from 'framer-motion' import axios from 'axios' export default function () { const editor = useEditor() const [fetching, setFetching] = useState(false) const [objects, setObjects] = useState([]) const [query, setQuery] = useState("") const { setIsShowMobileModal, dimensions, setIsAssetLoading } = useAppContext() useEffect(() => { getStickers() }, [query]) const getStickers = () => { setFetching(true) axios.get("https://pixabay.com/api/", { params: { key: "38559773-0732c38025706649560b23742", q: query, image_type: "illustration", pretty: true } }) .then(res => { setObjects(res.data.hits) }) .catch(err => console.log(err)) .then(() => setFetching(false)) } const addImateToCanvas = async (item) => { // let adjustScale = 1 // const recommendedSize = Math.ceil(dimensions.height / 2) // const { height } = await getImageDimensions(item.url) // adjustScale = recommendedSize / height // alert(item.largeImageURL) console.log(item.largeImageURL) setIsAssetLoading(true) const options = { type: "StaticVector", src: item.largeImageURL, // width: item.imageWidth, // height: item.imageHeight // scaleX: adjustScale, // scaleY: adjustScale } editor.objects.add(options) setIsShowMobileModal(false) setIsAssetLoading(false) } const addObject = (item) => { if (editor) { addImateToCanvas(item) } } const isTabletOrMobile = useMediaQuery({ query: '(max-width: 1224px)' }) if(isTabletOrMobile){ return (
{ fetching && } {objects.map((obj, index) => ( ))}
) } return ( <> setQuery(value)} /> { fetching && } {objects.map((obj, index) => ( ))} ) } const Sticker = (props) => { const { item } = props return ( props.onTapSticker(item)}> But ) }