export default function FeatureSelect()

in sae-viewer/src/components/featureSelect.tsx [15:55]


export default function FeatureSelect({init_feature, onFeatureChange, onFeatureSubmit, show_go}: FeatureSelectProps) {
  let [feature, setFeature] = useState(init_feature);
  let family = AUTOENCODER_FAMILIES[feature.autoencoder.family];
  let [warningAcknowledged, setWarningAcknowledged] = useState<boolean>(localStorage.getItem('warningAcknowledged') === 'true');
  let changeFeature = (feature: Feature) => {
    onFeatureChange && onFeatureChange(feature);
    setFeature(feature);
  }
  // console.log('features', feature.autoencoder.num_features)
  const feelingLuckySubmit = () => {
    const atom = Math.floor(Math.random() * feature.autoencoder.num_features);
    const random_feature: Feature = {atom, autoencoder: feature.autoencoder}
    setFeature(random_feature);
    onFeatureSubmit(random_feature);
    return false
  }
  const acknowledgeWarning = () => {
    localStorage.setItem('warningAcknowledged', 'true');
    setWarningAcknowledged(true);
  }

  if (!warningAcknowledged) {
    return (<button
      onClick={acknowledgeWarning}
      className="border border-gray-300 rounded-md p-2 bg-red-200"
    >
      Note:  by clicking this button you acknowledge that the content of the documents are taken randomly from the internet, and may contain offensive or inappropriate content.
    </button>)
  }

  return (
    <>
    <h3>

    <b>Subject model</b> {" "} 
    <select value={feature.autoencoder.subject} onChange={(e) => {
      let family = Object.values(AUTOENCODER_FAMILIES).find((family) => (family.subject === e.target.value));
      changeFeature({
        atom: 0, autoencoder: family.get_ae(family.default_H(feature.autoencoder.H))
      })
    }}>