UNPKG

@proca/widget

Version:

Proca is an open-source campaign toolkit designed to empower activists and organisations in their digital advocacy efforts. It provides a flexible and customisable platform for creating and managing online petitions, email campaigns, and other forms of di

66 lines (58 loc) 1.99 kB
import React, { Fragment, useState, useEffect } from "react"; import { useSupabase } from "@lib/supabase"; import { useCampaignConfig } from "@hooks/useConfig"; import List from "@material-ui/core/List"; import ListItem from "@material-ui/core/ListItem"; import Divider from "@material-ui/core/Divider"; import ListItemText from "@material-ui/core/ListItemText"; import ListItemIcon from "@material-ui/core/ListItemIcon"; import QuoteIcon from "@material-ui/icons/FormatQuote"; import CountryFlag from "react-emoji-flag"; const Wall = props => { const supabase = useSupabase(); const [comments, setComments] = useState([]); // const [country, setCountry] = useState(props.country); const country = props.country; // const [countries, setCountries] = useState([]); const config = useCampaignConfig(); const campaign = config.campaign.name; useEffect(() => { (async () => { let query = supabase .from("comments") .select("id,area,lang,name, comment") .order("created_at", { ascending: false }) .eq("campaign", campaign) .eq("enabled", true); if (country) { query = query.eq("area", country); } const { data, error } = await query; if (error) { console.error(error); return; } setComments(data); })(); }, [country, campaign, supabase]); return ( <List dense component="div"> {comments.map(d => ( <Fragment key={d.id}> <ListItem alignItems="flex-start" component="div"> <ListItemIcon> {!props.country && d.area && d.area !== "ZZ" ? ( <CountryFlag countryCode={d.area} /> ) : ( <QuoteIcon color="primary" /> )} </ListItemIcon> <ListItemText primary={d.name} secondary={d.comment} /> </ListItem> <Divider variant="inset" /> </Fragment> ))} </List> ); }; export default Wall;