{ lib, filter, yarn, mkYarnPackage, imagemagick }:

mkYarnPackage rec {
  src = filter {
    root = ./.;
    exclude = [ (filter.matchExt "nix") ];
  };

  packageJSON = ./package.json;
  yarnLock = ./yarn.lock;
  yarnNix = ./yarn.nix;

  buildPhase = ''
    runHook preBuild

    # Tests cannot find the functions of the testing framework
    rm -r ./deps/mobilizon/tests
    yarn run build

    runHook postBuild
  '';

  # doCheck = true;
  # checkPhase = "yarn test:unit";

  nativeBuildInputs = [ imagemagick ];

  meta = with lib; {
    description = "Frontend for the Mobilizon server";
    homepage = "https://joinmobilizon.org/";
    license = licenses.agpl3Plus;
    maintainers = with maintainers; [ minijackson erictapen ];
  };
}