Skip to content
Snippets Groups Projects
Select Git revision
  • bc09371246073b46d441ae5ac95c225ea6dbb5a9
  • test default protected
  • master protected
  • original
  • pirati-backup protected
  • beta-2
  • beta-1
  • v3.1.4
  • v3.1.3
  • v3.1.2
  • v3.1.1
  • v3.1.0
  • v3.0.16
  • v3.0.15
  • v3.0.14
  • v3.0.13
  • v3.0.12
  • v3.0.11
  • v3.0.10
  • v3.0.9
  • v3.0.8
  • v3.0.7
  • v3.0.6
  • v3.0.5
  • v3.0.4
25 results

url_names.py

Blame
  • AnnouncementList.jsx 1.43 KiB
    import React from "react";
    import classNames from "classnames";
    
    import Announcement from "./Announcement";
    
    const AnnouncementList = ({
      items,
      className,
      canRunActions,
      onDelete,
      onEdit,
      onSeen,
    }) => {
      const buildHandler = (responderFn) => (announcement) => (evt) => {
        evt.preventDefault();
        responderFn(announcement);
      };
    
      const onAnnouncementEdit = buildHandler(onEdit);
      const onAnnouncementDelete = buildHandler(onDelete);
    
      const onAnnouncementSeen = (announcement) => () => {
        onSeen(announcement);
      };
    
      const getClassName = (idx) => {
        if (idx === 0) {
          return "pt-4 lg:pt-8";
        }
    
        if (idx === items.length - 1) {
          return "pb-4 lg:pb-8";
        }
    
        return "";
      };
    
      return (
        <div className={classNames("space-y-px", className)}>
          {items.map((item, idx) => (
            <Announcement
              className={getClassName(idx)}
              key={item.id}
              datetime={item.datetime}
              type={item.type}
              content={item.content}
              link={item.link}
              seen={item.seen}
              canRunActions={canRunActions}
              onEdit={onAnnouncementEdit(item)}
              onDelete={onAnnouncementDelete(item)}
              onSeen={onAnnouncementSeen(item)}
            />
          ))}
          {!items.length && (
            <p className="px-8 py-4 leading-snug text-sm md:text-base">
              Zatím žádná oznámení.
            </p>
          )}
        </div>
      );
    };
    
    export default AnnouncementList;