Contact forms are like a direct line from your users to you, and more often than not provide a ton of insight into how your users perceive and communicate with your business, especially new customers. While you may think that creating a contact form is as easy as some inputs and some server to send off whatever data you provide it, there are a little more subtle nuances to making sure that your form works as expected, especially in production. At least, that is what I found out today while working on a contact page for my new service, SquadPerks. I was looking for some managed solution that leveraged my existing email service, address, and meshed well with my front end. Enter EmailJS. EmailJS offers complete support for a few of the most popular web frameworks, or just plain vanilla JavaScript, and comes with a nice dashboard that is quick and easy to get a contact service set up, using SMTP mail servers or existing mail services, in my case, Gmail. Jus
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html> | |
<head> | |
<link rel="stylesheet" href="style.css"> | |
<script type="text/javascript" src="script.js"></script> | |
</head> | |
<body> | |
<h1>Hello Scott!</h1> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import React, {Component, PropTypes} from 'react'; | |
import {Button} from 'react-bootstrap'; | |
import moment from 'moment'; | |
import ReactTable from 'react-table'; | |
import {defaultFilterMethod, includesInsensitive} from 'utils/table'; | |
import {initializer, selectors} from 'utils/resourcerizer'; | |
import {connect} from 'react-redux'; | |
import {USERS_NS} from 'constants/index'; | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var logger = require('../helpers/logger')(module); | |
var generator = require('../helpers/generator'); | |
var crypter = require('../helpers/crypter'); | |
var errors = require('../constants/errors'); | |
var mailer = require('../helpers/mailer'); | |
var User = require('../models/user'); | |
var async = require('async'); | |
var PasswordService = function () { | |
var optionObj = {lean: true, new: true}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
** | |
* @apiDefine changePassParams | |
* @apiParam {String} oldPassword Old password | |
* @apiParam {String} newPassword New Password | |
* @apiParam {String} confirmPassword Also new Password | |
* | |
* @apiParamExample Body Params: | |
* { | |
* "oldPassword": "123456", | |
* "newPassword": "654321", |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
export const toggleApproval = async (id) => { | |
const token = localStorage.getItem('token') | |
const res = await axios.put(`${API_BASE_URL}${VERSION}${MATCHES}/${id}/approve`,null , { | |
headers: { | |
Authorization: `Bearer ${token}` | |
} | |
}) | |
return res.data | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$npm i | |
npm WARN deprecated [email protected]: core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3. | |
> [email protected] install D:\Scott\Documents\Pumpt\pumpt\node_modules\leveldown | |
> prebuild-install || node-gyp rebuild | |
prebuild-install WARN install No prebuilt binaries found (target=10.16.3 runtime=node arch=x64 platform=win32) | |
D:\Scott\Documents\Pumpt\pumpt\node_modules\leveldown>if not defined npm_config_node_gyp (node "C:\Users\SCOTTP~1\AppData\Roaming\nvm\v10.16.3\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild ) else (node "C:\Users\SCOTTP~1\AppData\Roaming\nvm\v10.16.3\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" rebuild ) | |
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import * as React from "react"; | |
import { useRouter, useSession } from "blitz"; | |
import Layout from "app/layouts/Layout"; | |
import { LoginForm } from "app/auth/components/LoginForm"; | |
import { useCurrentUser } from "app/hooks/useCurrentUser" | |
const LoginPage = () => { | |
const session = useSession() | |
const handleLoginRedirect = (role) => { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Header from 'components/clients/Flows/Table/Header/Header' | |
import * as React from 'react' | |
import Table, {AutoResizer, Column} from 'react-base-table' | |
import 'react-base-table/styles.css' | |
// import styled from '@emotion/styled' | |
// import { colors, fontFamily } from 'styles/theme' | |
import FlowStatus from './Columns/FlowStatus' | |
import FlowName from './Columns/FlowName' | |
import Contacts from './Columns/Contacts' | |
import Engaged from './Columns/Engaged' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php include('header.php') ?> | |
<section id="list" class="list"> | |
<header class="list__row list__header"> | |
<h1>Assignments</h1> | |
<form action="." method="get" id="list__header_select" class="list__header_select"> | |
<input type="hidden" name="action" value="list_assignments" /> | |
<select required name="course_id"> | |
<option value="0">View All</option> | |
<?php foreach ($courses as $course) : ?> | |
<?php if ($course_id == $course['courseID']) { ?> |
OlderNewer