perf: use memo, fix quicklinks key err

This commit is contained in:
David Ralph
2022-10-30 16:56:26 +00:00
parent a9276a5fdb
commit 271af64d07
34 changed files with 146 additions and 46 deletions

View File

@@ -1,11 +1,11 @@
import React, { useState, useEffect, useCallback, useRef } from 'react';
import React, { useState, useEffect, useCallback, useRef, memo } from 'react';
import { MdOutlineArrowForwardIos, MdOutlineArrowBackIos } from 'react-icons/md';
import useEmblaCarousel from 'embla-carousel-react';
import Autoplay from 'embla-carousel-autoplay';
import './carousel.scss';
export default function EmblaCarousel({ data }) {
function EmblaCarousel({ data }) {
const autoplay = useRef(
Autoplay({ delay: 3000, stopOnInteraction: false }, (emblaRoot) => emblaRoot.parentElement),
);
@@ -79,3 +79,5 @@ export default function EmblaCarousel({ data }) {
</div>
);
}
export default memo(EmblaCarousel);

View File

@@ -1,7 +1,9 @@
import { memo } from 'react';
import variables from 'modules/variables';
import './preview.scss';
export default function Notification(props) {
function Notification(props) {
return (
<div className="preview-mode">
<span className="title">{variables.getMessage('modals.main.settings.reminder.title')}</span>
@@ -12,3 +14,5 @@ export default function Notification(props) {
</div>
);
}
export default memo(Notification);

View File

@@ -1,7 +1,8 @@
import { memo } from 'react';
import variables from 'modules/variables';
import './preview.scss';
export default function Preview(props) {
function Preview(props) {
return (
<div className="preview-mode">
<span className="title">{variables.getMessage('modals.main.settings.reminder.title')}</span>
@@ -12,3 +13,5 @@ export default function Preview(props) {
</div>
);
}
export default memo(Preview);

View File

@@ -1,3 +1,4 @@
import { memo } from 'react';
import variables from 'modules/variables';
import { MdClose, MdEmail, MdContentCopy } from 'react-icons/md';
import { FaTwitter, FaFacebookF } from 'react-icons/fa';
@@ -8,7 +9,7 @@ import { toast } from 'react-toastify';
import './sharemodal.scss';
export default function ShareModal({ modalClose, data }) {
function ShareModal({ modalClose, data }) {
const url = variables.constants.MARKETPLACE_URL + '/share/' + (btoa(data.api_name) || '');
const copyLink = () => {
@@ -111,3 +112,5 @@ export default function ShareModal({ modalClose, data }) {
</div>
);
}
export default memo(ShareModal);

View File

@@ -1,8 +1,8 @@
import { useState } from 'react';
import { useState, memo } from 'react';
import { useFloating, flip, offset, shift } from '@floating-ui/react-dom';
import './tooltip.scss';
export default function Tooltip({ children, title, style, placement, subtitle }) {
function Tooltip({ children, title, style, placement, subtitle }) {
const [showTooltip, setShowTooltip] = useState(false);
const { x, y, reference, floating, strategy } = useFloating({
placement: placement || 'bottom',
@@ -39,3 +39,5 @@ export default function Tooltip({ children, title, style, placement, subtitle })
</div>
);
}
export default memo(Tooltip);

View File

@@ -1,12 +1,12 @@
import variables from 'modules/variables';
import { useState } from 'react';
import { useState, memo } from 'react';
import { useFloating, flip, offset, shift } from '@floating-ui/react-dom';
import { MdClose, MdInfo, MdOpenInNew } from 'react-icons/md';
import Tooltip from './Tooltip';
import './tooltip.scss';
export default function InfoTooltip({ title, style, placement, subtitle }) {
function InfoTooltip({ title, style, placement, subtitle }) {
const [showTooltip, setShowTooltip] = useState(false);
const { x, y, reference, floating, strategy } = useFloating({
placement: placement || 'top-start',
@@ -43,3 +43,5 @@ export default function InfoTooltip({ title, style, placement, subtitle }) {
</div>
);
}
export default memo(InfoTooltip);