import SocialLink, { type SocialLinkProps, } from '@components/atoms/links/social-link'; import Widget, { type WidgetProps } from '@components/molecules/layout/widget'; import { FC } from 'react'; import styles from './social-media.module.scss'; export type Media = SocialLinkProps; export type SocialMediaProps = Pick & { media: Media[]; }; /** * Social Media widget component * * Render a social media list with links. */ const SocialMedia: FC = ({ media, ...props }) => { /** * Retrieve the social media items. * * @param {SocialMedia[]} links - An array of social media name and url. * @returns {JSX.Element[]} The social links. */ const getItems = (links: Media[]): JSX.Element[] => { return links.map((link, index) => (
  • )); }; return (
      {getItems(media)}
    ); }; export default SocialMedia; 'h' onchange='this.form.submit();'> The frontend of my personal website.Armand Philippot
    summaryrefslogtreecommitdiffstats
    blob: ff36e74eeb77974e8d00182faf97a73eaf06578e (plain)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    
    @use "@styles/abstracts/functions" as fun;
    @use "@styles/abstracts/mixins" as mix;
    @use "@styles/abstracts/placeholders";
    
    .section {
      --column-3: 0;
      --grid-gap: 0;
    
      composes: grid from "@styles/layout/_grid.scss";
      align-items: first baseline;
    }
    
    .year {
      grid-column: 2;
      margin-bottom: 0;
    
      @include mix.media("screen") {
        @include mix.dimensions("md") {
          grid-column: 1;
          justify-self: end;
          position: sticky;
          top: var(--spacing-xs);
          margin-right: var(--spacing-lg);
        }
      }
    }
    
    .list {
      @extend %reset-ordered-list;
    
      grid-column: 2;
      margin: 0 auto var(--spacing-md);
    }
    
    li.item {
      border-bottom: fun.convert-px(1) solid var(--color-border);
    
      &:not(:last-of-type) {
        margin: 0 0 var(--spacing-md) 0;
      }
    
      &:first-of-type {
        margin-top: var(--spacing-sm);
    
        @include mix.media("screen") {
          @include mix.dimensions("md") {
            margin-top: 0;
          }
        }
      }
    }