diff --git a/pages/new.tsx b/pages/new.tsx index 601e43b8..50351454 100644 --- a/pages/new.tsx +++ b/pages/new.tsx @@ -12,6 +12,7 @@ import Link from 'next/link'; import firebase from 'firebase/app'; import { SharingPermissions } from '../src/components/SharingPermissions'; import va from '@vercel/analytics'; +import generateRandomFileName from '../src/scripts/generateRandomFileName'; function classNames(...classes: any[]) { return classes.filter(Boolean).join(' '); @@ -28,6 +29,7 @@ export default function NewFilePage() { const router = useRouter(); const [lang, setLang] = useState('cpp'); const [fileName, setFileName] = useState(''); + useEffect(() => setFileName(generateRandomFileName()), []); const [defaultPerimssion, setDefaultPermission] = useState< 'READ_WRITE' | 'READ' | 'PRIVATE' | null >(null); diff --git a/src/scripts/generateRandomFileName.ts b/src/scripts/generateRandomFileName.ts new file mode 100644 index 00000000..30bad127 --- /dev/null +++ b/src/scripts/generateRandomFileName.ts @@ -0,0 +1,83 @@ +const adjectives = [ + 'awesome', + 'fantastic', + 'amazing', + 'cool', + 'brilliant', + 'spiritual', + 'amused', + 'obscene', + 'willing', + 'smelly', + 'bright', + 'colossal', + 'abstracted', + 'understood', + 'whispering', + 'ignorant', + 'momentous', + 'black', + 'agonizing', + 'fluffy', + 'regular', + 'drunk', + 'harsh', + 'open', + 'closed', + 'entertaining', + 'jobless', + 'periodic', + 'filthy', + 'fast', + 'quick', + 'strong', + 'typed', + 'simple', + 'sunny', +]; +const nouns = [ + 'project', + 'repo', + 'work', + 'code', + 'app', + 'order', + 'butter', + 'ticket', + 'smoke', + 'birds', + 'rock', + 'wing', + 'fog', + 'sky', + 'water', + 'cream', + 'bikes', + 'shoes', + 'vegetable', + 'cow', + 'fork', + 'haircut', + 'rose', + 'tree', + 'maze', + 'piano', + 'ball', + 'music', + 'food', + 'shower', + 'window', + 'umbrella', + 'fork', + 'plant', + 'towel', +]; + +export default function generateRandomFileName() { + const randomAdjective = + adjectives[Math.floor(Math.random() * adjectives.length)]; + const randomNoun = nouns[Math.floor(Math.random() * nouns.length)]; + const randomNumber = Math.floor(Math.random() * 100); + + return `${randomAdjective}-${randomNoun}-${randomNumber}`; +}