You're almost there, just a small bug in your filter logic.
You're doing:
setSites(sites.filter((site, i) => index !== site[i]));
But site[i] doesn't make sense. You probably meant:
setSites(sites.filter((_, i) => i !== index));