Luiz Monteiro
Luiz Monteiro
SobreBlog

Links com hacks e técnicas uteis para Javascript/Typescript

Cover Image for Links com hacks e técnicas uteis para Javascript/Typescript

índice

    Técnicas e dicas úteis para resolver problemas de JavaScript: Este artigo contém uma variedade de técnicas e truques para resolver problemas comuns em JavaScript. Inclui exemplos de uso real para ilustrar as soluções.

    1. Remover ou desestruturar propriedades.

    typescript
    1import styled from "@emotion/styled";
    2import { Box, ButtonBase, ButtonBaseProps } from "@mui/material";
    3import { Theme, useTheme } from "@mui/material/styles";
    4
    5export interface ButtonComplexProps extends ButtonBaseProps {
    6  startIcon?: React.ReactNode;
    7  wide?: boolean;
    8}
    9
    10export default function ButtonComplex(props: ButtonComplexProps) {
    11  const ImageButton = styled(ButtonBase)(({ theme }: { theme: Theme }) => ({
    12    display: "inline-flex",
    13    minWidth: "64px",
    14    minHeight: "40px",
    15    boxSizing: "border-box",
    16    "&:hover, &.Mui-focusVisible": {
    17      zIndex: 1,
    18      "& .MuiBackdrop-root": {
    19        opacity: 0.15,
    20      },
    21      "& .MuiImageMarked-root": {
    22        opacity: 0,
    23      },
    24      "& .MuiTypography-root": {
    25        border: "4px solid currentColor",
    26      },
    27    },
    28    borderRadius: "6px",
    29    backgroundColor: (theme as Theme).palette.primary[theme.palette.mode],
    30    padding: "14px 12px",
    31    color: (theme as Theme).palette.text.primary,
    32  }));
    33
    34  const ButtonBackdrop = styled("div")(({ theme }) => {
    35    const t = theme as Theme;
    36    return {
    37      position: "absolute",
    38      left: 0,
    39      right: 0,
    40      top: 0,
    41      bottom: 0,
    42      backgroundColor: t.palette.common.black,
    43      opacity: 0,
    44      transition: t.transitions.create("opacity"),
    45      width: "100%",
    46      borderRadius: "6px",
    47    };
    48  });
    49
    50  const theme = useTheme();
    51  const { wide, startIcon, ...otherProps } = props;
    52  return (
    53    <ImageButton theme={theme} {...otherProps}>
    54      <ButtonBackdrop className="MuiBackdrop-root" />
    55      <Box
    56        sx={{
    57          marginRight: "5px",
    58        }}
    59      >
    60        {startIcon}
    61      </Box>
    62      {props.children}
    63    </ImageButton>
    64  );
    65}
    66

    link com tutorial de como desestruturar as propriedades

    Compartilhe nas suas redes sociais.

    Copiar