From 6140f4d929d1b1aec3e201afe8ba5483b1c6c96c Mon Sep 17 00:00:00 2001 From: Ahmed Halac <38500014+ahmedhalac@users.noreply.github.com> Date: Sat, 23 Nov 2024 14:25:46 +0100 Subject: [PATCH] Update social icons on share page (#610) * Replace Twitter icon with X icon (closes #607) * Add missing Instagram icon * Move social icons out of entry resources * Use same social icons as in the header --------- Co-authored-by: ezwelty --- scripts/data.js | 2 +- src/components/entry/icons/Twitter.svg | 1 - src/components/entry/resources.js | 12 - src/components/table/DataTableProperties.js | 15 +- src/components/table/ShareTheHarvestTable.jsx | 35 ++- src/components/ui/SocialButtons.js | 2 +- .../entry/icons => constants}/X.svg | 0 src/constants/data/harvest.json | 278 +++++++++--------- 8 files changed, 173 insertions(+), 172 deletions(-) delete mode 100644 src/components/entry/icons/Twitter.svg rename src/{components/entry/icons => constants}/X.svg (100%) diff --git a/scripts/data.js b/scripts/data.js index f95c53a99..5a00d618e 100644 --- a/scripts/data.js +++ b/scripts/data.js @@ -42,7 +42,7 @@ const HARVEST_KEYS = [ 'subname', 'subname_url', 'facebook', - 'twitter', + 'x', 'instagram', ] diff --git a/src/components/entry/icons/Twitter.svg b/src/components/entry/icons/Twitter.svg deleted file mode 100644 index 4dc2ce39f..000000000 --- a/src/components/entry/icons/Twitter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/components/entry/resources.js b/src/components/entry/resources.js index f9565bd25..813e33ab7 100644 --- a/src/components/entry/resources.js +++ b/src/components/entry/resources.js @@ -1,8 +1,6 @@ import EatTheWeedsLogo from './icons/EatTheWeeds.png' -import FacebookLogo from './icons/Facebook.svg' import ForagingTexasLogo from './icons/ForagingTexas.png' import FruitipediaLogo from './icons/Fruitipedia.png' -import TwitterLogo from './icons/Twitter.svg' import UrbanMushroomsLogo from './icons/UrbanMushrooms.png' import USDALogo from './icons/USDA.svg' import WikipediaLogo from './icons/Wikipedia.svg' @@ -43,16 +41,6 @@ const RESOURCES = [ urlKey: 'wikipedia', icon: WikipediaLogo, }, - { - title: 'Facebook', - urlKey: 'facebook', - icon: FacebookLogo, - }, - { - title: 'Twitter', - urlKey: 'twitter', - icon: TwitterLogo, - }, ] export { RESOURCES } diff --git a/src/components/table/DataTableProperties.js b/src/components/table/DataTableProperties.js index b85d2898e..a407d1162 100644 --- a/src/components/table/DataTableProperties.js +++ b/src/components/table/DataTableProperties.js @@ -1,7 +1,6 @@ import { LinkExternal } from '@styled-icons/boxicons-regular' import styled from 'styled-components/macro' -import { RESOURCES } from '../entry/resources' import { theme } from '../ui/GlobalStyle' const TablePreviewLink = styled.a` @@ -21,16 +20,6 @@ const TablePreviewLink = styled.a` const customLinkSort = (rowOne, rowTwo) => rowOne.links.length - rowTwo.links.length -const ResourceList = ({ url, key }) => - RESOURCES.map( - ({ title, urlKey, icon }) => - url.includes(urlKey) && ( - - {`${title} - - ), - ) - const FORMATTERS = { muni: ({ muni }) => (muni ? 'Tree inventory' : 'Community map'), link: ({ url }) => @@ -39,8 +28,6 @@ const FORMATTERS = { ), - links: ({ links }) => - links.map((link, index) => ), created_at: ({ created_at }) => new Date(created_at).toISOString().slice(0, 10), } @@ -49,4 +36,4 @@ const SORTERS = { links: customLinkSort, } -export { FORMATTERS, SORTERS } +export { FORMATTERS, SORTERS, TablePreviewLink } diff --git a/src/components/table/ShareTheHarvestTable.jsx b/src/components/table/ShareTheHarvestTable.jsx index 22a4984b6..972e9ba7d 100644 --- a/src/components/table/ShareTheHarvestTable.jsx +++ b/src/components/table/ShareTheHarvestTable.jsx @@ -1,11 +1,14 @@ +import { Facebook, Instagram } from '@styled-icons/boxicons-logos' import { Search as SearchIcon } from '@styled-icons/boxicons-regular' import React from 'react' import styled from 'styled-components/macro' import harvestData from '../../constants/data/harvest.json' +import X from '../../constants/X.svg' +import { theme } from '../ui/GlobalStyle' import Input from '../ui/Input' import DataTable from './DataTable' -import { FORMATTERS } from './DataTableProperties' +import { TablePreviewLink } from './DataTableProperties' const OrganizationName = styled.span` ${({ $isActive }) => @@ -43,6 +46,31 @@ const FormattedOrganization = ({ ) +const FormattedSocials = ({ facebook, instagram, x }) => { + if (!facebook && !instagram && !x) { + return null + } + return ( + <> + {facebook && ( + + + + )} + {instagram && ( + + + + )} + {x && ( + + {`X + + )} + + ) +} + const columns = [ { id: 'country', @@ -77,9 +105,8 @@ const columns = [ { id: 'social', name: 'Social', - selector: (row) => row.facebook + row.twitter, - format: ({ facebook, twitter }) => - FORMATTERS.links({ links: [facebook, twitter].filter(Boolean) }), + selector: (row) => row.facebook || row.instagram || row.x, + format: FormattedSocials, compact: true, width: '80px', right: true, diff --git a/src/components/ui/SocialButtons.js b/src/components/ui/SocialButtons.js index 83e2d7eff..a62aac953 100644 --- a/src/components/ui/SocialButtons.js +++ b/src/components/ui/SocialButtons.js @@ -5,7 +5,7 @@ import { Slack, } from '@styled-icons/boxicons-logos' -import { ReactComponent as X } from '../../components/entry/icons/X.svg' +import { ReactComponent as X } from '../../constants/X.svg' const SocialButtons = ({ ...props }) => (
diff --git a/src/components/entry/icons/X.svg b/src/constants/X.svg similarity index 100% rename from src/components/entry/icons/X.svg rename to src/constants/X.svg diff --git a/src/constants/data/harvest.json b/src/constants/data/harvest.json index 1f54ec028..96ee4f0cc 100644 --- a/src/constants/data/harvest.json +++ b/src/constants/data/harvest.json @@ -20,7 +20,7 @@ "name": "Fruit Tree Planting Foundation", "name_url": "http://www.ftpf.org/", "facebook": "https://www.facebook.com/fruittreeplantingfoundation", - "twitter": "https://twitter.com/FTPFdotorg" + "x": "https://x.com/FTPFdotorg" }, { "active": true, @@ -33,7 +33,7 @@ "name": "Little Free Library", "name_url": "https://littlefreelibrary.org/", "facebook": "https://www.facebook.com/LittleFreeLibrary", - "twitter": "https://twitter.com/LtlFreeLibrary", + "x": "https://x.com/LtlFreeLibrary", "instagram": "https://www.instagram.com/littlefreelibrary/" }, { @@ -41,7 +41,7 @@ "name": "Transition Network", "name_url": "http://www.transitionnetwork.org/", "facebook": "https://www.facebook.com/transitionnetwork", - "twitter": "https://twitter.com/transitiontowns" + "x": "https://x.com/transitiontowns" }, { "active": true, @@ -56,7 +56,7 @@ "name": "Urban Farming Tasmania", "name_url": "http://urbanfarmingtasmania.org/", "facebook": "https://www.facebook.com/urbanfarmingtasmania", - "twitter": "https://twitter.com/@urbanfarmingtas" + "x": "https://x.com/@urbanfarmingtas" }, { "active": true, @@ -66,7 +66,7 @@ "name": "Produce to the People Tasmania", "name_url": "http://producetothepeopletasmania.com.au/", "facebook": "https://www.facebook.com/producetothepeopletasmania", - "twitter": "https://twitter.com/pttptasmania", + "x": "https://x.com/pttptasmania", "instagram": "https://www.instagram.com/producetothepeople/" }, { @@ -277,7 +277,7 @@ "name": "Edible Garden Project", "name_url": "http://ediblegardenproject.com/", "facebook": "https://www.facebook.com/EdibleGardenProject/", - "twitter": "https://twitter.com/the_egp" + "x": "https://x.com/the_egp" }, { "active": true, @@ -369,7 +369,7 @@ "subname": "Community Angel Food Runners", "subname_url": "https://www.foodbank.bc.ca/programs/community-angel-food-runner-program", "facebook": "https://www.facebook.com/VanFoodBank", - "twitter": "https://twitter.com/VanFoodBank" + "x": "https://x.com/VanFoodBank" }, { "active": true, @@ -397,7 +397,7 @@ "name": "Fernwood Neighborhood Resource Group", "name_url": "http://fernwoodnrg.ca/", "facebook": "https://www.facebook.com/fernwoodnrg", - "twitter": "https://twitter.com/fernwoodnrg" + "x": "https://x.com/fernwoodnrg" }, { "active": true, @@ -435,7 +435,7 @@ "name": "Fruit Share Brandon", "name_url": "http://fruitsharebrandon.ca/", "facebook": "https://www.facebook.com/pages/Fruit-Share-Brandon/252799274865454", - "twitter": "https://twitter.com/bdnfruitshare" + "x": "https://x.com/bdnfruitshare" }, { "active": true, @@ -445,7 +445,7 @@ "name": "Fruit Share Winnipeg", "name_url": "http://www.fruitshare.ca/", "facebook": "https://www.facebook.com/FruitShareWPG/", - "twitter": "https://twitter.com/FruitShareWPG" + "x": "https://x.com/FruitShareWPG" }, { "active": true, @@ -485,7 +485,7 @@ "subname": "Guelph Community Orchard", "subname_url": "http://guelphcommunityorchard.ca/", "facebook": "https://www.facebook.com/TransitionGuelph", - "twitter": "https://twitter.com/transitnguelph" + "x": "https://x.com/transitnguelph" }, { "country": "Canada", @@ -493,7 +493,7 @@ "city": "Halton", "name": "Halton Fruit Tree Project", "name_url": "http://www.haltonfruittreeproject.org/", - "twitter": "https://twitter.com/foodinhalton" + "x": "https://x.com/foodinhalton" }, { "country": "Canada", @@ -510,7 +510,7 @@ "name": "Mississauga Fruit Tree Organization", "name_url": "http://www.mississaugafruittree.org/", "facebook": "https://www.facebook.com/mississaugafruittree", - "twitter": "https://twitter.com/SaugaFruitTree" + "x": "https://x.com/SaugaFruitTree" }, { "active": true, @@ -520,7 +520,7 @@ "name": "The Garden of Eating - Niagara", "name_url": "http://www.thegardenofeating-niagara.com/", "facebook": "https://www.facebook.com/GardenofEatingNiagara/", - "twitter": "https://twitter.com/EatingNiagara" + "x": "https://x.com/EatingNiagara" }, { "active": true, @@ -540,7 +540,7 @@ "name": "Fruit for All Sudbury", "name_url": "http://fruitforallhomepage-sudburysharedharvest.nationbuilder.com/", "facebook": "https://www.facebook.com/fruitforallsudbury", - "twitter": "https://twitter.com/fruit_all" + "x": "https://x.com/fruit_all" }, { "active": true, @@ -558,7 +558,7 @@ "name": "Not Far From The Tree", "name_url": "http://www.notfarfromthetree.org/", "facebook": "https://www.facebook.com/NFFTT", - "twitter": "https://twitter.com/NFFTT", + "x": "https://x.com/NFFTT", "instagram": "https://www.instagram.com/nfftt/" }, { @@ -569,7 +569,7 @@ "name": "Gleaners Guild", "name_url": "http://gleanersguild.ca/", "facebook": "https://www.facebook.com/GleanersGuild/", - "twitter": "https://twitter.com/gleanersguild" + "x": "https://x.com/gleanersguild" }, { "country": "Canada", @@ -589,7 +589,7 @@ "subname": "Les Fruits Défendus", "subname_url": "http://santropolroulant.org/en/what-is-the-roulant/collectives/fruits-defendus/", "facebook": "https://www.facebook.com/lesfruitsdefendus.montreal", - "twitter": "https://twitter.com/lesfruitsdef", + "x": "https://x.com/lesfruitsdef", "instagram": "https://www.instagram.com/fruitsdefendus/" }, { @@ -608,7 +608,7 @@ "name": "RecuperaLab", "name_url": "http://www.recuperalab.com/", "facebook": "https://www.facebook.com/RecuperaLab/", - "twitter": "http://www.twitter.com/recuperalab" + "x": "http://www.x.com/recuperalab" }, { "active": true, @@ -720,7 +720,7 @@ "name": "Re-bon", "name_url": "https://re-bon.wixsite.com/re-bon", "facebook": "https://www.facebook.com/rebonreseauglanagenantais", - "twitter": "https://twitter.com/rebon_info" + "x": "https://x.com/rebon_info" }, { "active": true, @@ -780,7 +780,7 @@ "name_url": "http://weshare.ie/", "subname": "Falling Fruit", "subname_url": "http://weshare.ie/dublin/falling-fruit-2016/", - "twitter": "https://twitter.com/WeShareDublin" + "x": "https://x.com/WeShareDublin" }, { "active": true, @@ -1167,7 +1167,7 @@ "country": "United Kingdom", "name": "Abundance Network", "name_url": "http://www.abundancenetwork.org.uk/", - "twitter": "https://twitter.com/Abundance_UK" + "x": "https://x.com/Abundance_UK" }, { "active": true, @@ -1300,7 +1300,7 @@ "city": "London", "name": "Abundance London", "name_url": "http://www.abundancelondon.com/", - "twitter": "https://twitter.com/abundancelondon" + "x": "https://x.com/abundancelondon" }, { "country": "United Kingdom", @@ -1317,7 +1317,7 @@ "name": "Crystal Palace Transition Town", "name_url": "http://www.crystalpalacetransition.org.uk/", "facebook": "https://www.facebook.com/groups/118354028197684/", - "twitter": "https://twitter.com/CrystalPalaceTT" + "x": "https://x.com/CrystalPalaceTT" }, { "active": true, @@ -1327,7 +1327,7 @@ "name": "Edible Landscapes London", "name_url": "http://www.ediblelandscapeslondon.org.uk/", "facebook": "https://www.facebook.com/groups/217195791772788/", - "twitter": "https://twitter.com/ForestGardenELL", + "x": "https://x.com/ForestGardenELL", "instagram": "https://www.instagram.com/edible_landscapes_london/" }, { @@ -1364,7 +1364,7 @@ "name": "Incredible Edible Southwark", "name_url": "http://www.incredible-edible-southwark.org.uk/", "facebook": "https://www.facebook.com/IncredibleEdibleSouthwark", - "twitter": "https://twitter.com/EdibleSouthwark" + "x": "https://x.com/EdibleSouthwark" }, { "active": true, @@ -1392,7 +1392,7 @@ "name": "The Orchard Project", "name_url": "http://www.theorchardproject.org.uk/", "facebook": "https://www.facebook.com/WeAreTheOrchardProject/", - "twitter": "https://twitter.com/ProjectOrchard" + "x": "https://x.com/ProjectOrchard" }, { "active": true, @@ -1404,7 +1404,7 @@ "subname": "Abundance Belsize", "subname_url": "http://www.transitionbelsize.org.uk/projects/abundance", "facebook": "https://www.facebook.com/TransitionBelsize/", - "twitter": "https://twitter.com/TTBelsize" + "x": "https://x.com/TTBelsize" }, { "active": true, @@ -1415,7 +1415,7 @@ "name_url": "http://ttkensaltokilburn.ning.com/", "subname": "Fruit Harvesters", "subname_url": "http://ttkensaltokilburn.ning.com/group/fruit", - "twitter": "https://twitter.com/k2kfruitharvest" + "x": "https://x.com/k2kfruitharvest" }, { "active": true, @@ -1436,7 +1436,7 @@ "name_url": "http://ttkensaltokilburn.ning.com/group/ttwillesden", "subname": "Willesden Harvesters", "facebook": "https://www.facebook.com/Willesden-Harvesters-1453659531560632/", - "twitter": "https://twitter.com/WHarvesters" + "x": "https://x.com/WHarvesters" }, { "country": "United Kingdom", @@ -1462,7 +1462,7 @@ "name_url": "http://www.westealingneighbours.org.uk/", "subname": "West Ealing Abundance", "subname_url": "http://westealingabundancew13.wordpress.com/", - "twitter": "https://twitter.com/WENeighbours" + "x": "https://x.com/WENeighbours" }, { "active": true, @@ -1542,7 +1542,7 @@ "subname": "Harvest Share", "subname_url": "http://www.transitionstratford.com/wordpress/?page_id=48", "facebook": "https://www.facebook.com/transition.stratford", - "twitter": "https://twitter.com/TT_Stratford" + "x": "https://x.com/TT_Stratford" }, { "active": true, @@ -1586,7 +1586,7 @@ "subname": "Fruit Factory", "subname_url": "https://brightonpermaculture.org.uk/orchards/scrumping", "facebook": "https://www.facebook.com/brightonpermaculture", - "twitter": "https://twitter.com/BPTpermaculture", + "x": "https://x.com/BPTpermaculture", "instagram": "https://www.instagram.com/brightonpermaculture/" }, { @@ -1599,7 +1599,7 @@ "subname": "Abundance York", "subname_url": "http://www.edibleyork.org.uk/edibleinitiatives/abundance/", "facebook": "https://www.facebook.com/AbundanceYork", - "twitter": "https://twitter.com/EdibleYork" + "x": "https://x.com/EdibleYork" }, { "active": true, @@ -1653,7 +1653,7 @@ "name": "Community Plates", "name_url": "http://communityplates.org/", "facebook": "https://www.facebook.com/CommunityPlates", - "twitter": "https://twitter.com/communityplates" + "x": "https://x.com/communityplates" }, { "active": true, @@ -1675,7 +1675,7 @@ "name": "Giving Grove", "name_url": "https://www.givinggrove.org", "facebook": "https://www.facebook.com/communitytreegardens", - "twitter": "https://twitter.com/givinggrove", + "x": "https://x.com/givinggrove", "instagram": "https://www.instagram.com/givinggrove/" }, { @@ -1690,7 +1690,7 @@ "name": "Little Free Pantry", "name_url": "http://www.littlefreepantry.org/", "facebook": "https://www.facebook.com/littlefreepantry/", - "twitter": "https://twitter.com/pantry_little", + "x": "https://x.com/pantry_little", "instagram": "https://www.instagram.com/littlefreepantry/" }, { @@ -1699,7 +1699,7 @@ "name": "Meals on the Wheels", "name_url": "https://www.mealsonwheelsamerica.org", "facebook": "https://www.facebook.com/MealsonWheelsAmerica", - "twitter": "https://twitter.com/_mealsonwheels", + "x": "https://x.com/_mealsonwheels", "instagram": "https://instagram.com/mealsonwheelsamerica" }, { @@ -1708,7 +1708,7 @@ "name": "Rescuing Leftover Cuisine", "name_url": "http://www.rescuingleftovercuisine.org/", "facebook": "https://www.facebook.com/RescuingLeftoverCuisine", - "twitter": "https://twitter.com/rescuingcuisine", + "x": "https://x.com/rescuingcuisine", "instagram": "https://www.instagram.com/rescuingleftovercuisine/" }, { @@ -1717,7 +1717,7 @@ "name": "Society of Saint Andrew", "name_url": "http://www.endhunger.org/", "facebook": "https://www.facebook.com/Society-of-St-Andrew-210137351957/", - "twitter": "https://twitter.com/societystandrew" + "x": "https://x.com/societystandrew" }, { "active": true, @@ -1738,7 +1738,7 @@ "subname": "Gleaning", "subname_url": "http://bayareafoodbank.org/gleaning/", "facebook": "https://www.facebook.com/FeedingtheGulfCoast/", - "twitter": "https://twitter.com/feedingthegulf", + "x": "https://x.com/feedingthegulf", "instagram": "https://www.instagram.com/feedingthegulfcoast/" }, { @@ -1777,7 +1777,7 @@ "name": "Waste Not", "name_url": "http://wastenotaz.org/", "facebook": "https://www.facebook.com/WasteNotInc", - "twitter": "https://twitter.com/wastenotaz" + "x": "https://x.com/wastenotaz" }, { "active": true, @@ -1789,7 +1789,7 @@ "subname": "Gleaning and Citrus Donations", "subname_url": "http://www.communityfoodbank.org/Our-Work/Programs/Gleaning", "facebook": "https://www.facebook.com/foodbankofsouthernarizona", - "twitter": "https://twitter.com/foodbanktucson" + "x": "https://x.com/foodbanktucson" }, { "active": true, @@ -1810,7 +1810,7 @@ "subname": "Local Fruit Harvesting Project", "subname_url": "http://iskashitaa.blogspot.com/p/local-fruit-harvesting-project.html", "facebook": "https://www.facebook.com/IskashitaaRefugeeNetwork", - "twitter": "https://twitter.com/Iskashitaa", + "x": "https://x.com/Iskashitaa", "instagram": "https://www.instagram.com/iskashitaa/" }, { @@ -1828,7 +1828,7 @@ "city": "Tucson", "name": "University of Arizona LEAF", "facebook": "https://www.facebook.com/UALEAF", - "twitter": "https://twitter.com/UALEAF" + "x": "https://x.com/UALEAF" }, { "active": true, @@ -1955,7 +1955,7 @@ "name": "Donate Don't Dump", "name_url": "http://donatedontdump.net/", "facebook": "https://www.facebook.com/DonateDontDump", - "twitter": "https://twitter.com/Don8DontDumpOrg" + "x": "https://x.com/Don8DontDumpOrg" }, { "active": true, @@ -1967,7 +1967,7 @@ "subname": "Gleaning Program", "subname_url": "http://www.foodforpeople.org/programs/gleaning-program", "facebook": "https://www.facebook.com/FoodforPeopleInc", - "twitter": "https://twitter.com/FoodforPeople" + "x": "https://x.com/FoodforPeople" }, { "active": true, @@ -2009,7 +2009,7 @@ "name": "Fallen Fruit", "name_url": "http://fallenfruit.org", "facebook": "https://www.facebook.com/FallenFruit/", - "twitter": "https://twitter.com/fallenfruit", + "x": "https://x.com/fallenfruit", "instagram": "https://www.instagram.com/fallen_fruit/" }, { @@ -2022,7 +2022,7 @@ "subname": "Bakyard Harvesting", "subname_url": "https://foodforward.org/about/backyard-harvesting/", "facebook": "https://www.facebook.com/foodforwardla/", - "twitter": "https://twitter.com/foodforwardla", + "x": "https://x.com/foodforwardla", "instagram": "https://www.instagram.com/foodforward/" }, { @@ -2035,7 +2035,7 @@ "subname": "Impact L.A.", "subname_url": "http://www.lakitchen.org/impact-la/", "facebook": "https://www.facebook.com/pg/thelakitchen/", - "twitter": "https://twitter.com/thelakitchen", + "x": "https://x.com/thelakitchen", "instagram": "https://www.instagram.com/thelakitchen/" }, { @@ -2054,7 +2054,7 @@ "name": "Extra Food", "name_url": "http://extrafood.org/", "facebook": "https://www.facebook.com/extrafood.org", - "twitter": "https://twitter.com/ExtraFoodDotOrg" + "x": "https://x.com/ExtraFoodDotOrg" }, { "active": true, @@ -2183,7 +2183,7 @@ "subname": "Bounty Hunters", "subname_url": "http://www.petalumabounty.org/programs/bounty-hunters/", "facebook": "https://www.facebook.com/petalumabounty", - "twitter": "https://twitter.com/petalumabounty" + "x": "https://x.com/petalumabounty" }, { "country": "United States", @@ -2200,7 +2200,7 @@ "name": "Sacramento Reverse Food Truck", "name_url": "http://sacrft.com/", "facebook": "https://www.facebook.com/SacRFT", - "twitter": "https://twitter.com/sacrft", + "x": "https://x.com/sacrft", "instagram": "https://www.instagram.com/rftsac/" }, { @@ -2220,7 +2220,7 @@ "subname": "Harvest Sacramento", "subname_url": "https://soilborn.org/initiatives/harvest-sacramento/", "facebook": "https://www.facebook.com/HarvestSac/", - "twitter": "https://twitter.com/HarvestSac", + "x": "https://x.com/HarvestSac", "instagram": "https://www.instagram.com/harvestsac/" }, { @@ -2233,7 +2233,7 @@ "subname": "Gleaning Program", "subname_url": "http://www.agagainsthunger.org/gleaning", "facebook": "https://www.facebook.com/AgAgainstHunger/?ref=aymt_homepage_panel", - "twitter": "http://www.twitter.com/wix", + "x": "http://www.x.com/wix", "instagram": "https://www.instagram.com/agagainsthunger/" }, { @@ -2255,7 +2255,7 @@ "name": "CropSwap", "name_url": "http://www.cropswapsandiego.com/", "facebook": "https://www.facebook.com/CropSwap", - "twitter": "https://twitter.com/ProduceGood" + "x": "https://x.com/ProduceGood" }, { "active": true, @@ -2293,7 +2293,7 @@ "subname": "CropSwap", "subname_url": "http://www.cropswapsandiego.org/", "facebook": "https://www.facebook.com/producegood/", - "twitter": "https://twitter.com/ProduceGood", + "x": "https://x.com/ProduceGood", "instagram": "https://www.instagram.com/producegood/" }, { @@ -2306,7 +2306,7 @@ "subname": "Harvesting San Diego", "subname_url": "http://www.sandiegoroots.org/harvesting.php", "facebook": "https://www.facebook.com/wildwillowfarm", - "twitter": "https://twitter.com/WildWillowFarm" + "x": "https://x.com/WildWillowFarm" }, { "active": true, @@ -2332,7 +2332,7 @@ "city": "San Francisco", "name": "Forage SF", "name_url": "http://foragesf.com/", - "twitter": "https://twitter.com/forageSF", + "x": "https://x.com/forageSF", "instagram": "https://www.instagram.com/foragesf/" }, { @@ -2405,7 +2405,7 @@ "name": "Peninsula Food Runners", "name_url": "http://www.peninsulafoodrunners.org/", "facebook": "https://www.facebook.com/PeninsulaFoodRunners", - "twitter": "https://twitter.com/foodrunners" + "x": "https://x.com/foodrunners" }, { "country": "United States", @@ -2425,7 +2425,7 @@ "subname": "The Harvest Club", "subname_url": "http://theharvestclub.org/", "facebook": "https://www.facebook.com/TheHarvestClub/", - "twitter": "https://twitter.com/OCFoodAccess" + "x": "https://x.com/OCFoodAccess" }, { "active": true, @@ -2471,7 +2471,7 @@ "name": "Gleanings for the Hungry", "name_url": "http://gleanings.org/", "facebook": "https://www.facebook.com/YWAMGleanings/", - "twitter": "https://twitter.com/gleanings" + "x": "https://x.com/gleanings" }, { "active": true, @@ -2483,7 +2483,7 @@ "subname": "Harvesting Hope", "subname_url": "http://www.behealthytulare.org/harvesting-hope", "facebook": "https://www.facebook.com/behealthytulare/", - "twitter": "https://twitter.com/BeHealthyTulare" + "x": "https://x.com/BeHealthyTulare" }, { "active": true, @@ -2567,7 +2567,7 @@ "name": "Denver Food Rescue", "name_url": "http://www.denverfoodrescue.org/", "facebook": "https://www.facebook.com/pages/Denver-Food-Rescue/489756777722937?ref=tn_tnmn", - "twitter": "https://twitter.com/DenverFoodRescu", + "x": "https://x.com/DenverFoodRescu", "instagram": "https://www.instagram.com/denverfoodrescue/" }, { @@ -2577,7 +2577,7 @@ "name": "Denver Yard Harvest", "name_url": "http://yardharvest.org/", "facebook": "https://www.facebook.com/YardHarvest", - "twitter": "https://twitter.com/yardharvest" + "x": "https://x.com/yardharvest" }, { "active": true, @@ -2587,7 +2587,7 @@ "name": "Foraged Feast", "name_url": "http://foragedfeast.org/", "facebook": "https://www.facebook.com/ForagedFeast", - "twitter": "https://twitter.com/foragedfeast" + "x": "https://x.com/foragedfeast" }, { "country": "United States", @@ -2607,7 +2607,7 @@ "subname": "Preserve the Harvest", "subname_url": "http://www.slowfooddenver.org/preserve-the-harvest/", "facebook": "https://www.facebook.com/SlowFoodDenver/", - "twitter": "https://twitter.com/slowfooddenver" + "x": "https://x.com/slowfooddenver" }, { "active": true, @@ -2625,7 +2625,7 @@ "name": "We Don't Waste", "name_url": "https://www.wedontwaste.org", "facebook": "https://www.facebook.com/WeDontWasteDenver", - "twitter": "https://twitter.com/WeDontWaste" + "x": "https://x.com/WeDontWaste" }, { "active": true, @@ -2637,7 +2637,7 @@ "subname": "Fruit Gleaning Program", "subname_url": "http://bearsmartdurango.org/community-resource/help-with-picking-fruit/", "facebook": "https://www.facebook.com/bearsmartdurango/", - "twitter": "https://twitter.com/bebearsmart" + "x": "https://x.com/bebearsmart" }, { "active": true, @@ -2695,7 +2695,7 @@ "name": "Heritage Fruit Tree Project", "name_url": "http://heritagefruitcolorado.squarespace.com/mapping-and-data-collection/", "facebook": "https://www.facebook.com/heritagefruitrfv", - "twitter": "https://twitter.com/heritagefruitCO" + "x": "https://x.com/heritagefruitCO" }, { "active": true, @@ -2705,7 +2705,7 @@ "name": "Foodshare", "name_url": "http://site.foodshare.org/", "facebook": "https://www.facebook.com/Foodshare", - "twitter": "https://twitter.com/foodshare" + "x": "https://x.com/foodshare" }, { "active": true, @@ -2726,7 +2726,7 @@ "subname": "Food Program", "subname_url": "https://breadforthecity.org/food/", "facebook": "https://www.facebook.com/BreadfortheCity", - "twitter": "https://twitter.com/breadforthecity" + "x": "https://x.com/breadforthecity" }, { "active": true, @@ -2738,7 +2738,7 @@ "subname": "Food Recycling", "subname_url": "http://www.dccentralkitchen.org/foodrecycling/", "facebook": "https://www.facebook.com/dccentralkitchen", - "twitter": "https://twitter.com/dcck" + "x": "https://x.com/dcck" }, { "active": true, @@ -2748,7 +2748,7 @@ "name": "FreshFarm", "name_url": "http://www.freshfarm.org/", "facebook": "https://www.facebook.com/freshfarmmarkets/", - "twitter": "https://twitter.com/FRESHFARMMktsDC", + "x": "https://x.com/FRESHFARMMktsDC", "instagram": "https://www.instagram.com/freshfarmmarkets/" }, { @@ -2758,7 +2758,7 @@ "name": "Farm Share", "name_url": "http://farmshare.org/", "facebook": "https://www.facebook.com/farmshare.fl", - "twitter": "https://twitter.com/FarmShareFL" + "x": "https://x.com/FarmShareFL" }, { "active": true, @@ -2769,7 +2769,7 @@ "subname": "Farmers Feeding Florida", "subname_url": "https://www.feedingflorida.org/programs/farmers-feeding-florida", "facebook": "https://www.facebook.com/FeedingFlorida", - "twitter": "https://twitter.com/FeedingFlorida" + "x": "https://x.com/FeedingFlorida" }, { "active": true, @@ -2789,7 +2789,7 @@ "subname": "CROS Gleaning", "subname_url": "http://www.crosministries.org/more.php?CROSpagename=programscontent2_more", "facebook": "https://www.facebook.com/CROSministries", - "twitter": "https://twitter.com/crosministries" + "x": "https://x.com/crosministries" }, { "active": true, @@ -2801,7 +2801,7 @@ "subname": "Suncoast Gleaning Project", "subname_url": "http://www.transitionsrq.org/food/gleaning/", "facebook": "https://www.facebook.com/transitionsarasota", - "twitter": "https://twitter.com/transitionsrq" + "x": "https://x.com/transitionsrq" }, { "active": true, @@ -2813,7 +2813,7 @@ "subname": "Atlanta's Table", "subname_url": "http://www.acfb.org/about/our-programs/atlantas-table", "facebook": "https://www.facebook.com/atlfoodbank", - "twitter": "https://twitter.com/acfb" + "x": "https://x.com/acfb" }, { "active": true, @@ -2823,7 +2823,7 @@ "name": "Concrete Jungle", "name_url": "http://www.concrete-jungle.org/", "facebook": "https://www.facebook.com/concretejungle.org/", - "twitter": "https://twitter.com/cjungle", + "x": "https://x.com/cjungle", "instagram": "https://www.instagram.com/concretejungleatl/" }, { @@ -2870,7 +2870,7 @@ "city": "Maui", "name": "Waste Not Want Not", "facebook": "https://www.facebook.com/Waste-Not-Want-Not-Foundation-310686978273/", - "twitter": "https://twitter.com/MauiGleaners" + "x": "https://x.com/MauiGleaners" }, { "active": true, @@ -2897,7 +2897,7 @@ "subname": "Food Rescue", "subname_url": "https://idahofoodbank.org/about/food-rescue/", "facebook": "https://www.facebook.com/theidahofoodbank", - "twitter": "https://twitter.com/IdahoFoodbank/", + "x": "https://x.com/IdahoFoodbank/", "instagram": "https://www.instagram.com/idahofoodbank/" }, { @@ -2931,7 +2931,7 @@ "subname": "Food Recovery", "subname_url": "http://www.mindfulwaste.org/food-recovery", "facebook": "https://www.facebook.com/mindfulwaste/", - "twitter": "https://www.instagram.com/mindfulwaste/" + "x": "https://www.instagram.com/mindfulwaste/" }, { "active": true, @@ -2968,7 +2968,7 @@ "name": "Bloomington Community Orchard", "name_url": "http://www.bloomingtoncommunityorchard.org/", "facebook": "https://www.facebook.com/BloomingtonCommunityOrchard", - "twitter": "https://twitter.com/BtownOrchard" + "x": "https://x.com/BtownOrchard" }, { "active": true, @@ -2980,7 +2980,7 @@ "subname": "Garden & Gleaning Programs", "subname_url": "http://www.hhfoodbank.org/garden-gleaning.php", "facebook": "https://www.facebook.com/Hoosier-Hills-Food-Bank-48412266243/", - "twitter": "https://twitter.com/hoosierhillsfb" + "x": "https://x.com/hoosierhillsfb" }, { "active": true, @@ -3062,7 +3062,7 @@ "name": "GleanKY", "name_url": "http://www.gleanky.org/", "facebook": "https://www.facebook.com/gleanKY/", - "twitter": "https://twitter.com/gleanKy", + "x": "https://x.com/gleanKy", "instagram": "https://www.instagram.com/glean_ky/" }, { @@ -3082,7 +3082,7 @@ "subname": "Harvesting Hands", "subname_url": "http://www.kentuckyipl.org/programs/harvestinghands/", "facebook": "https://www.facebook.com/KyInterfaithPowerandLight", - "twitter": "https://twitter.com/KentuckyIPL", + "x": "https://x.com/KentuckyIPL", "instagram": "https://www.instagram.com/kentuckyipl/" }, { @@ -3113,7 +3113,7 @@ "subname": "Donated and Purchased Food Distribution", "subname_url": "http://www.gsfb.org/how-we-help/programs/donated-purchased-food-distribution/", "facebook": "https://www.facebook.com/feedingmaine", - "twitter": "https://twitter.com/feedingmaine" + "x": "https://x.com/feedingmaine" }, { "active": true, @@ -3124,7 +3124,7 @@ "subname": "Gleaning", "subname_url": "https://healthyacadia.org/initiatives/gleaning.html", "facebook": "https://www.facebook.com/HealthyAcadia/", - "twitter": "https://twitter.com/healthyacadia" + "x": "https://x.com/healthyacadia" }, { "active": true, @@ -3171,7 +3171,7 @@ "name": "Community Food Rescue", "name_url": "https://communityfoodrescue.org/", "facebook": "https://www.facebook.com/communityfoodrescue", - "twitter": "https://twitter.com/mocofoodrescue" + "x": "https://x.com/mocofoodrescue" }, { "active": true, @@ -3189,7 +3189,7 @@ "name": "Boston Area Gleaners", "name_url": "http://bostonareagleaners.org/", "facebook": "https://www.facebook.com/bostonareagleaners", - "twitter": "https://twitter.com/bostonareaglean" + "x": "https://x.com/bostonareaglean" }, { "active": true, @@ -3241,7 +3241,7 @@ "name": "Lovin' Spoonfuls", "name_url": "http://www.lovinspoonfulsinc.org/", "facebook": "https://www.facebook.com/lovinspoonfuls", - "twitter": "https://twitter.com/lovinfoodrescue" + "x": "https://x.com/lovinfoodrescue" }, { "active": true, @@ -3251,7 +3251,7 @@ "name": "Food for Free", "name_url": "http://www.foodforfree.org/", "facebook": "https://www.facebook.com/foodforfreeorg/", - "twitter": "https://twitter.com/foodforfreeorg" + "x": "https://x.com/foodforfreeorg" }, { "active": true, @@ -3261,7 +3261,7 @@ "name": "Fair Foods", "name_url": "http://www.fairfoods.org/", "facebook": "https://www.facebook.com/FairFoodsBoston/", - "twitter": "https://twitter.com/fairfoodsboston" + "x": "https://x.com/fairfoodsboston" }, { "active": true, @@ -3290,7 +3290,7 @@ "name": "Food Gatherers", "name_url": "http://www.foodgatherers.org/", "facebook": "https://www.facebook.com/foodgatherers", - "twitter": "https://twitter.com/FoodGatherers" + "x": "https://x.com/FoodGatherers" }, { "active": true, @@ -3311,7 +3311,7 @@ "subname": "Greens for Good", "subname_url": "http://millcityfarmersmarket.org/learn/greens-for-good/", "facebook": "https://www.facebook.com/MillCityFarmersMarket", - "twitter": "https://twitter.com/MCFarmersMkt", + "x": "https://x.com/MCFarmersMkt", "instagram": "https://www.instagram.com/mcfarmersmkt/" }, { @@ -3324,7 +3324,7 @@ "subname": "Fruits of the City", "subname_url": "https://thefoodgroupmn.org/fruits/", "facebook": "https://www.facebook.com/thefoodgroupmn/", - "twitter": "https://twitter.com/thefoodgroupmn", + "x": "https://x.com/thefoodgroupmn", "instagram": "https://www.instagram.com/thefoodgroupmn/" }, { @@ -3335,7 +3335,7 @@ "name": "After the Harvest", "name_url": "http://aftertheharvestkc.org/", "facebook": "https://www.facebook.com/AftertheHarvestKC", - "twitter": "https://twitter.com/ath_karin" + "x": "https://x.com/ath_karin" }, { "active": true, @@ -3347,7 +3347,7 @@ "subname": "Glean Team", "subname_url": "https://ozarksfoodharvest.org/how-to-help/volunteer/", "facebook": "https://www.facebook.com/ozarksfoodharvest", - "twitter": "https://twitter.com/ozksfoodharvest", + "x": "https://x.com/ozksfoodharvest", "instagram": "https://www.instagram.com/ozarksfoodharvest/" }, { @@ -3386,7 +3386,7 @@ "subname": "Produce Rescue", "subname_url": "http://producefromtheheart.org/how-to-help/produce-rescue.html", "facebook": "https://www.facebook.com/ProduceFromTheHeart", - "twitter": "https://twitter.com/prducefrmthehrt/", + "x": "https://x.com/prducefrmthehrt/", "instagram": "https://www.instagram.com/producefromtheheart/" }, { @@ -3454,7 +3454,7 @@ "name": "America's Grow-a-Row", "name_url": "http://www.americasgrowarow.org/", "facebook": "https://www.facebook.com/americas.grow.a.row/", - "twitter": "https://twitter.com/AGARNJ" + "x": "https://x.com/AGARNJ" }, { "active": true, @@ -3472,7 +3472,7 @@ "name": "Table to Table", "name_url": "http://tabletotable.org/", "facebook": "https://www.facebook.com/tabletotableorg", - "twitter": "https://twitter.com/TableToTableOrg" + "x": "https://x.com/TableToTableOrg" }, { "active": true, @@ -3482,7 +3482,7 @@ "name": "Seed2Need", "name_url": "http://www.seed2need.us/", "facebook": "https://www.facebook.com/Seed2Need/", - "twitter": "https://twitter.com/seed2need", + "x": "https://x.com/seed2need", "instagram": "https://www.instagram.com/seed2need/" }, { @@ -3504,7 +3504,7 @@ "name": "Friendship Donations Network", "name_url": "https://friendshipdonations.org", "facebook": "https://www.facebook.com/FriendshipDonations/", - "twitter": "https://twitter.com/FDNIthaca", + "x": "https://x.com/FDNIthaca", "instagram": "https://www.instagram.com/friendshipdonations/" }, { @@ -3517,7 +3517,7 @@ "subname": "Emergency Food Rescue", "subname_url": "http://www.cityharvest.org/programs/emergency-food-rescue", "facebook": "https://www.facebook.com/CityHarvestNYC", - "twitter": "https://twitter.com/CityHarvest", + "x": "https://x.com/CityHarvest", "instagram": "https://www.instagram.com/cityharvestnyc/" }, { @@ -3539,7 +3539,7 @@ "subname": "Glean Team", "subname_url": "http://www.ulstercorps.org/about/the-glean-team/", "facebook": "https://www.facebook.com/pg/UlsterCorps/", - "twitter": "https://twitter.com/ulstercorps" + "x": "https://x.com/ulstercorps" }, { "active": true, @@ -3558,7 +3558,7 @@ "name": "Capital Roots", "name_url": "http://www.capitalroots.org/", "facebook": "https://www.facebook.com/CapitalRootsNY/", - "twitter": "https://twitter.com/CapitalRootsNY" + "x": "https://x.com/CapitalRootsNY" }, { "active": true, @@ -3612,7 +3612,7 @@ "name": "Inter-Faith Food Shuttle", "name_url": "http://foodshuttle.org/", "facebook": "https://www.facebook.com/InterFaithFoodShuttle", - "twitter": "https://twitter.com/FoodShuttle" + "x": "https://x.com/FoodShuttle" }, { "active": true, @@ -3622,7 +3622,7 @@ "name": "Community Food Initiatives", "name_url": "http://www.communityfoodinitiatives.org/", "facebook": "https://www.facebook.com/CommunityFoodInitiatives/", - "twitter": "https://twitter.com/AthensOhioCFI" + "x": "https://x.com/AthensOhioCFI" }, { "active": true, @@ -3673,7 +3673,7 @@ "subname": "Apples for Everyone", "subname_url": "https://seagatefoodbank.org/apples-for-everyone/", "facebook": "https://www.facebook.com/SeaGate-Food-Bank-106679977129/", - "twitter": "https://twitter.com/seagatefoodbank" + "x": "https://x.com/seagatefoodbank" }, { "active": true, @@ -3775,7 +3775,7 @@ "subname": "B-Shares", "subname_url": "http://b-linepdx.com/b-shares/", "facebook": "https://www.facebook.com/blinedelivers", - "twitter": "https://twitter.com/BLineDelivers", + "x": "https://x.com/BLineDelivers", "instagram": "https://www.instagram.com/blinedelivers/" }, { @@ -3796,7 +3796,7 @@ "name": "Portland Fruit Tree Project", "name_url": "http://portlandfruit.org/", "facebook": "https://www.facebook.com/PortlandFruitTreeProject", - "twitter": "https://twitter.com/PortlandFruit" + "x": "https://x.com/PortlandFruit" }, { "country": "United States", @@ -3829,7 +3829,7 @@ "name": "Marion-Polk Food Share", "name_url": "https://www.marionpolkfoodshare.org", "facebook": "https://www.facebook.com/yourfoodshare/", - "twitter": "https://twitter.com/endlocalhunger", + "x": "https://x.com/endlocalhunger", "instagram": "https://www.instagram.com/marionpolkfoodshare/" }, { @@ -3849,7 +3849,7 @@ "name": "Tualatin Valley Gleaners", "name_url": "http://www.tualatinvalleygleaners.org/", "facebook": "https://www.facebook.com/TualatinValleyGleaners/", - "twitter": "https://twitter.com/TVGleaners" + "x": "https://x.com/TVGleaners" }, { "active": true, @@ -3872,7 +3872,7 @@ "subname": "Gleaning", "subname_url": "https://www.pittsburghfoodbank.org/gleaning/", "facebook": "https://www.facebook.com/pghfoodbank", - "twitter": "https://twitter.com/pghfoodbank", + "x": "https://x.com/pghfoodbank", "instagram": "https://www.instagram.com/pghfoodbank/" }, { @@ -3904,7 +3904,7 @@ "name": "Rolling Harvest Food Rescue", "name_url": "http://rollingharvest.org/", "facebook": "https://www.facebook.com/RollingHarvestFoodRescue/", - "twitter": "https://twitter.com/rollingharvest", + "x": "https://x.com/rollingharvest", "instagram": "https://www.instagram.com/rollingharvestfoodrescue_/" }, { @@ -3917,7 +3917,7 @@ "subname": "Gleaning", "subname_url": "https://www.philabundance.org/learn/about-us/programs/gleaning/", "facebook": "https://www.facebook.com/Philabundance", - "twitter": "https://twitter.com/Philabundance", + "x": "https://x.com/Philabundance", "instagram": "https://www.instagram.com/philabundance/" }, { @@ -3936,7 +3936,7 @@ "name": "412 Food Rescue", "name_url": "http://412foodrescue.org/", "facebook": "https://www.facebook.com/pg/412FoodRescue/", - "twitter": "https://twitter.com/412FoodRescue" + "x": "https://x.com/412FoodRescue" }, { "country": "United States", @@ -3972,7 +3972,7 @@ "name": "Fields to Families", "name_url": "http://www.fieldstofamilies.org/", "facebook": "https://www.facebook.com/FieldstoFamilies/", - "twitter": "https://twitter.com/fields2families", + "x": "https://x.com/fields2families", "instagram": "https://www.instagram.com/fields2families/" }, { @@ -4007,7 +4007,7 @@ "subname": "Food Rescue", "subname_url": "https://secondharvestetn.org/cause-view/food-rescue/", "facebook": "https://www.facebook.com/Second.Harvest.ETN", - "twitter": "https://twitter.com/SecondHarvestET" + "x": "https://x.com/SecondHarvestET" }, { "active": true, @@ -4017,7 +4017,7 @@ "name": "Festival Beach Food Forest", "name_url": "http://festivalbeachfoodforest.weebly.com/", "facebook": "https://www.facebook.com/EastFeast", - "twitter": "https://twitter.com/eastfeast2022" + "x": "https://x.com/eastfeast2022" }, { "active": true, @@ -4027,7 +4027,7 @@ "name": "Keep Austin Fed", "name_url": "http://keepaustinfed.org/", "facebook": "https://www.facebook.com/KeepAustinFed", - "twitter": "https://twitter.com/keepaustinfed" + "x": "https://x.com/keepaustinfed" }, { "country": "United States", @@ -4073,7 +4073,7 @@ "subname": "Fresh Produce Program", "subname_url": "http://safoodbank.org/fresh-produce-program/", "facebook": "https://www.facebook.com/safoodbank", - "twitter": "https://twitter.com/safoodbank", + "x": "https://x.com/safoodbank", "instagram": "https://www.instagram.com/safoodbank/" }, { @@ -4084,7 +4084,7 @@ "name": "San Antonio Fruit Tree Project", "name_url": "http://www.safruittrees.org/", "facebook": "https://www.facebook.com/SanAntonioFruitTreeProject/", - "twitter": "https://twitter.com/safruittrees" + "x": "https://x.com/safruittrees" }, { "country": "United States", @@ -4123,7 +4123,7 @@ "subname": "Gleaning Program", "subname_url": "https://www.vtfoodbank.org/gather-food/gleaning", "facebook": "https://www.facebook.com/VermontFoodbank/", - "twitter": "https://twitter.com/VermontFoodbank", + "x": "https://x.com/VermontFoodbank", "instagram": "https://www.instagram.com/vermontfoodbank/" }, { @@ -4144,7 +4144,7 @@ "subname": "Gleaning & Food Rescue", "subname_url": "http://www.intervale.org/what-we-do/intervale-gleaning-food-rescue/", "facebook": "https://www.facebook.com/IntervaleCenterVT", - "twitter": "https://twitter.com/intervalecenter" + "x": "https://x.com/intervalecenter" }, { "active": true, @@ -4174,7 +4174,7 @@ "name_url": "http://www.rutlandfarmandfood.org/", "subname": "Glean Team", "subname_url": "http://www.rutlandfarmandfood.org/glean/", - "twitter": "https://twitter.com/RutlandFarmFood" + "x": "https://x.com/RutlandFarmFood" }, { "active": true, @@ -4196,7 +4196,7 @@ "subname": "Gleaning Program", "subname_url": "https://www.alexandriava.gov/generalservices/", "facebook": "https://www.facebook.com/AlexandriaVAGov/", - "twitter": "https://twitter.com/AlexandriaVAGov" + "x": "https://x.com/AlexandriaVAGov" }, { "active": true, @@ -4214,7 +4214,7 @@ "name": "Food Bus", "name_url": "http://foodbus.org/", "facebook": "https://www.facebook.com/FoodBus/", - "twitter": "https://twitter.com/foodbus?ref_src=twsrc%5Etfw" + "x": "https://x.com/foodbus?ref_src=twsrc%5Etfw" }, { "active": true, @@ -4241,7 +4241,7 @@ "name": "Food Lifeline", "name_url": "https://foodlifeline.org/", "facebook": "https://www.facebook.com/FoodLifeline", - "twitter": "https://twitter.com/FoodLifeline" + "x": "https://x.com/FoodLifeline" }, { "active": true, @@ -4406,7 +4406,7 @@ "subname": "Hopelink Harvest", "subname_url": "https://hopelink.org/take-action/hopelink-harvest", "facebook": "https://www.facebook.com/Hopelink", - "twitter": "https://twitter.com/Hopelink" + "x": "https://x.com/Hopelink" }, { "active": true, @@ -4416,7 +4416,7 @@ "name": "Fields of Grace", "name_url": "http://www.fields-of-grace.com/", "facebook": "https://www.facebook.com/FieldsofGraceTC", - "twitter": "https://twitter.com/FieldsOfGraceTC" + "x": "https://x.com/FieldsOfGraceTC" }, { "active": true, @@ -4443,7 +4443,7 @@ "name": "City Fruit", "name_url": "http://www.cityfruit.org/", "facebook": "https://www.facebook.com/cityfruit", - "twitter": "https://twitter.com/cityfruit", + "x": "https://x.com/cityfruit", "instagram": "https://www.instagram.com/cityfruitseattle/" }, { @@ -4500,7 +4500,7 @@ "name": "Spokane Edible Tree Project", "name_url": "http://spokaneedibletreeproject.org/", "facebook": "https://www.facebook.com/spokaneedibletreeproject/", - "twitter": "https://www.instagram.com/spokaneedibletreeproject/" + "x": "https://www.instagram.com/spokaneedibletreeproject/" }, { "active": true, @@ -4521,7 +4521,7 @@ "name_url": "http://clarkcountyfoodbank.org/", "subname": "Gleaning Program", "subname_url": "http://www.clarkcountyfoodbank.org/farming", - "twitter": "https://twitter.com/clarkcountyfood", + "x": "https://x.com/clarkcountyfood", "instagram": "https://www.instagram.com/clarkcountyfoodbank/" }, { @@ -4659,7 +4659,7 @@ "name": "Emergency Food Bank", "name_url": "http://www.stocktonfoodbank.org/", "facebook": "https://www.facebook.com/StocktonEmergencyFoodBank", - "twitter": "https://twitter.com/EFBFS", + "x": "https://x.com/EFBFS", "instagram": "https://www.instagram.com/emergencyfoodbank/" }, { @@ -4670,7 +4670,7 @@ "name": "PUENTES", "name_url": "https://puentesca.org/", "facebook": "https://www.facebook.com/PUENTESCA/", - "twitter": "https://twitter.com/PUENTESCA", + "x": "https://x.com/PUENTESCA", "instagram": "https://www.instagram.com/puentesca/?hl=en" }, { @@ -4681,7 +4681,7 @@ "name": "Harvester Farms", "name_url": "http://www.harvesterfarms.org/", "facebook": "https://www.facebook.com/HarvesterFarms/?ref=bookmarks", - "twitter": "https://twitter.com/HarvesterFarms" + "x": "https://x.com/HarvesterFarms" }, { "active": true, @@ -4711,7 +4711,7 @@ "name": "Second Harvest of the Greater Valley", "name_url": "https://localfoodbank.org/", "facebook": "https://www.facebook.com/localfoodbank", - "twitter": "https://twitter.com/fightinghunger", + "x": "https://x.com/fightinghunger", "instagram": "https://www.instagram.com/p/B1rlg0aH_zD/" }, {