Skip to content

Instantly share code, notes, and snippets.

const searchFilterChange = (e: any): void => {
setFilterState && setFilterState((current) => {
let newFilters: FilterParams = new FilterParams(current);
newFilters.searchFilter = e.target.value;
return newFilters;
});
}
let {filterState, setFilterState} = useContext<filterHook>(FilterContext);
setFilterState((current: FilterParams) => {
let newFilters: FilterParams = new FilterParams(current);
newFilters.noCarFilter = !newFilters.noCarFilter;
return newFilters;
});
function useFilterParams() {
let localstorageFilters = localStorage.getItem('filters') ? JSON.parse(localStorage.getItem('filters')) : {};
let [filterState, setFilterState] = useState<FilterParams>(new FilterParams(localstorageFilters));
return {filterState, setFilterState};
}
function Home() {
let filterParamHook = useFilterParams();
let locationsFetchHook = useLocationsFetcher(filterParamHook);
function GettingIn({location, transportationOptions}: PropLocation) {
interface GettingInForm {
walking_distance: boolean;
transportations: TransportationOption[];
}
let [formAlerts, setFormAlerts] = useState({error: null, success: false});
let { register, handleSubmit, watch, errors, formState, setValue, getValues } = useForm<GettingInForm>({});
let {dirty, isSubmitting, touched, submitCount} = formState
...
<div className="btn-group btn-group-sm center-block btn-group-toggle" style={{paddingLeft: '10px'}} data-toggle="buttons">
<label className={classNames("btn btn-sm btn-default", {active: formValues?.walking_distance})}>
<input type="radio" name="walking_distance" value="true" ref={register} onChange={() => {console.log('changing yes');setFormValues(getValues())}} /> Yes
</label>
<label className={classNames("btn btn-sm btn-default", {active: !formValues?.walking_distance})}>
<input type="radio" name="walking_distance" value="false" ref={register} onChange={() => {console.log('changing no');setFormValues(getValues())}} /> No
</label>
</div>
useEffect(() => {
async function reloadLocations() {
setNoMoreLocations(false);
let newFilters: FilterParams = new FilterParams(filterState);
newFilters.page = 1;
setFilterState(newFilters);
let objectBody = {...filterState?.filterUrlObject};
const requestOptions = {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
class Location < ActiveRecord::Base
has_paper_trail
acts_as_mappable :lat_column_name => :latitude,:lng_column_name => :longitude
belongs_to :grade
validates_presence_of :slug
has_and_belongs_to_many :grades
has_and_belongs_to_many :transportations
has_and_belongs_to_many :climbing_types
has_and_belongs_to_many :seasons
MacBook-Air-2:climbcation dsauerbrun$ thin start --ssl --ssl-key-file ./.ssl/localhost.key --ssl-cert-file ./.ssl/localhost.crt
Using rack adapter
Thin web server (v1.7.2 codename Bachmanity)
Maximum connections set to 1024
Listening on 0.0.0.0:3000, CTRL+C to stop
/Users/dsauerbrun/.rvm/gems/ruby-2.5.3/gems/eventmachine-1.2.7/lib/em/connection.rb:459: [BUG] Bus Error at 0x00007fff9caf1ba0
ruby 2.5.3p105 (2018-10-18 revision 65156) [x86_64-darwin18]
-- Crash Report log information --------------------------------------------
See Crash Report log file under the one of following:
/Users/dsauerbrun/.rvm/gems/ruby-2.5.3/gems/eventmachine-1.2.7/lib/em/connection.rb:459: [BUG] Bus Error at 0x00007fff9caf1ba0
ruby 2.5.3p105 (2018-10-18 revision 65156) [x86_64-darwin18]
-- Crash Report log information --------------------------------------------
See Crash Report log file under the one of following:
* ~/Library/Logs/DiagnosticReports
* /Library/Logs/DiagnosticReports
for more details.
Don't forget to include the above Crash Report log file in bug reports.
function Home() {
let [filterState, setFilterState] = React.useState(new FilterParams());
function addCount() {
filterState.startMonth = 2;
setFilterState(filterState);
}
return (
<FilterContext.Provider value={filterState}>
<section>
<img src="/images/skyscannerinline.png" style={{display: 'none'}}/>