38 Commits

Author SHA1 Message Date
Alex Bates 4cf3e416e5 Use Next.js 13 app directory & Tailwind CSS (#626)
- Use Next.js 13 app directory for all routes except projects
- Add Tailwind (resolves #619) and use it for most components
- New footer
- Adjust navbar (logotype, buttons moved to right)
- Improve the styling of the search box
- New /settings/account page
- /credits grabs contributors list for this repo from GitHub's API
- ResolveĀ #634
- New welcome page header with scrolling platform icons
2023-01-03 12:41:05 +00:00
Ethan Roseman 8ea10ca286 CodeMirror & PresetSelect fix (#413)
* yarn upgrade

* update eslint no-multiple-empty-lines rule

* update Next.js & React

Resolves #358.

* use CodeMirror in scratch editor

* use codemirror on new page

* move extensions out of CodeMirror component

* grow scratch codemirror

* fix state bug

* initial theming

* fix scratch page SSR

* fix credits page rendering

* max width for AsyncButton error popup

* word wrap

* bye monaco

* cleanup

* style scrollbars everywhere

* tab stuff

* updates

* more

* update codemirror theme

* new react, backend deps, preset on scratch, bugfixes

* improve monospace areas

* store preset name on scratch

* stylelint

* mypy

* mypy 2

* monospace

* fix monospace

* add padding to editor

* fix saving

* fix selection colours

* Highlight assembly line on source selected line change (#416)

Co-authored-by: Alex Bates <hi@imalex.xyz>

* mypy & black

* font stuff

* remove courier new

* make diff style consistent with editor

* fix codemirror exception when editing eof

* attempt to reduce layout thrashing

* /new: store presetName in localStorage

* use react-window for diff

* link diff column scroll position

* hide double scrollbar

* increase overscan

* pointer-events:none on diff header

* fix diff header thing

* make diff columns non-draggable

* dont shrink tabs

* add draggable bar between diff columns

* remove log

* fix 2-col mode

* fix diff align

* DiffCell support cell=undefined

* drag better

* style .cm-search

* eth style changes

* reduce rerenders when dragging diff bar

Co-authored-by: Alex Bates <hi@imalex.xyz>
Co-authored-by: hatal175 <hatal175@users.noreply.github.com>
Co-authored-by: Alex Bates <alex@nanaian.town>
2022-03-31 22:22:39 +09:00
Ethan Roseman 6b1ee90acd Compiler/platform refactor (#396)
* foyst

* clang & agbcc

* more

* wii/gc

* more

* fix

* more

* references

* fixes

* CI fix

* nabbed em

* gcc2.7.2kmc

* meowp

* Tweak Dockerfile + other bits (#398)

* Tweak Dockerfile + other bits

* Capitalise

* Enable/disable compiler downloads via Environment variables

* appease black

* migration

* flags / presets in Compiler

* fixed tests

* /compilers

* mypy cheese

* upd8s

* name

* frontend goodness

* i18n

* cleaners

Co-authored-by: Mark Street <22226349+mkst@users.noreply.github.com>
Co-authored-by: Mark Street <streetster@gmail.com>
2022-03-14 02:33:19 +09:00
Ethan Roseman f055b629f0 Update README.md 2022-02-24 02:30:20 +09:00
Alex Bates 2de5197e25 update poetry install link 2022-02-20 14:27:17 +00:00
Ethan Roseman 36d1f1d706 Poetry (#366)
* Trying to set up poetry

* oops

* mypy python 3.9

* mark

* blah

* attempt to fix stuff

* .

* fixies

* try winders again

* doqqer

* tomorrow for sure!

* attempt to install poetry as user

* help

* docker fix?

* ?

* try thing

* oh god

* the path to victory

* meowp

* srob

* try to do it manually on windows, install on docker

* try to do it manually on windows, install on docker: the sequel

* winders

* drf extensions

* winders 2

* use pip to install poetry on winders

* execute 'poetry install' at runtime, same as yarn install (#377)

Co-authored-by: Mark Street <22226349+mkst@users.noreply.github.com>
2022-02-20 22:46:00 +09:00
MonsterDruide1 d43fdfd5e6 Remove FRONTEND_BASE (#352) 2022-02-11 02:46:20 +09:00
Ethan Roseman a1e11a94a9 Update README.md 2022-01-18 12:23:21 +09:00
Alex Bates b96dd0315d ScratchViewSet + search box (#285)
* initial scratch viewset impl

* use scratch2 on frontend

* todo

* viewset

* permissions

* fix mypy

* add TerseScratchSerializer

* mypy

* add FRONTEND_BASE

* add search box

* use get_html_url

* scratch default name

* always show search icon

* oops

* add platform icon to search results

* very oops

* improve searchbox stability

* fix requirements

* don't autosave on compiler change

* add Search to ScratchToolbar

* Nav frog padding tweak

* frog hover state

* click away bug

* fix weird search result click bugs

* recompile on visit another scratch
2022-01-04 03:00:12 +09:00
Ethan Roseman 7e44eab580 we need python 3.9 2021-11-23 03:01:33 +09:00
Mark Street fe97842e24 Hide wine's warnings (#210)
* Hide wine's warnings

* this is getting ridiculous

* Correcting backend Dockerfile

* here we go again

* removing 'f' from non-f string

* wine test & gha stuff

* Don't install mesa stuff

* Get wine test passing in Docker

* Backend docker test

* fixup pr.yaml (attempt 1 of N)

* fixup pr.yaml (attempt 2 of N)

* fixup pr.yaml (attempt 3 of N)

* fixup pr.yaml (attempt 4 of N)

* fixup pr.yaml (attempt 5 of N)

* fixup pr.yaml (attempt 6 of N)

* fixup pr.yaml (attempt 7 of N)

* fixup pr.yaml (attempt 8 of N)

* fixup pr.yaml (attempt 9 of N)

* fixup pr.yaml (attempt 10 of N)

* Updating Dockerfile to bullseye to match GHA builder

* Improve tests

* README.md update

Co-authored-by: Ethan Roseman <ethteck@gmail.com>
2021-11-21 23:23:39 +09:00
alex 7757386396 Migrate to Next.js + big style update (#154)
* Backend changes to diff from label rather than 0, also possibly fix #109

* implement diff_label frontend & fix assemble_asm

* Log stack trace if asm-differ fails

* don't return { obj } from api

* slight change in stub func code

* GET /compilers returns arches for compilers

* GET /compilers returns arches for compilers

* keep compiler_ids

* Obtain ido from download script, add comment for permuter api support

* Clean m2c wrapper code, add left pointer style, add test

* fix 3 tests

* list arches from api

* fix cookies in DEBUG

SameSite=None is incompatible with Secure, and this causes some browsers
to ignore the cookie altogether.

* fix test

Regression due to changing API to not return { "user": User } but
rather just the User object itself.

* fix create scratch without glabel

This works around a backend bug

* add label select on scratch creation

* show compilers/presets for current arch only

- fixes #92
- fixes #132

* fix mypy issues

* use react instead of preact

* hold pages in src/pages/

This matches NextJS file structure; the names of files reflect their routing paths.

* migrate to NextJS

* use next-pwa

* statically generate user page

* fix github login

* add loading progress bar

* arch on scratch

* nav redesign

* use .env.local instead of local.env

* fix unset compiler not considering arch

* add discord server to readme

* big styling update

* add footer

* move compiler dir into components

* use lib dir

* fix ts error

* describe deployment

* dont use NEXT_PUBLIC_* in .env

* add storybook

* document storybook

* make AsyncButton loading state pretty

* remove sharp

* custom monaco editor react component

* ci: build frontend

* allow nextjs to build despite ignored typescript errors

* ci

* remove react-loading-skeleton

* oops

* don't request public_repo github scope

* give AsyncButton error popup its arrow back

* try fix monaco problem

* oops

* fix monaco red bg for real this time

Co-authored-by: Ethan Roseman <ethteck@gmail.com>
2021-10-13 00:49:23 +09:00
alex 4e8b07efaa Diff from label (#151)
* Backend changes to diff from label rather than 0, also possibly fix #109

* implement diff_label frontend & fix assemble_asm

* Log stack trace if asm-differ fails

* don't return { obj } from api

* slight change in stub func code

* GET /compilers returns arches for compilers

* GET /compilers returns arches for compilers

* keep compiler_ids

* Obtain ido from download script, add comment for permuter api support

* Clean m2c wrapper code, add left pointer style, add test

* fix 3 tests

* list arches from api

* fix cookies in DEBUG

SameSite=None is incompatible with Secure, and this causes some browsers
to ignore the cookie altogether.

* fix test

Regression due to changing API to not return { "user": User } but
rather just the User object itself.

* fix create scratch without glabel

This works around a backend bug

* add label select on scratch creation

* show compilers/presets for current arch only

- fixes #92
- fixes #132

* fix mypy issues

* arch on scratch

* use .env.local instead of local.env

* fix unset compiler not considering arch

* fix compiler opts not displaying on first load if compiler is not gcc 2.8.1

Co-authored-by: Ethan Roseman <ethteck@gmail.com>
2021-10-12 00:59:33 +09:00
alex f7632fefeb remove features section, update discord link 2021-09-23 13:24:40 +01:00
alex 2ae1881a7c remove note about reviewdog
Also it contained a typo
2021-09-17 23:06:47 +01:00
alex c3ebf1b8f6 set ALLOWED_HOSTS for nginx setup 2021-09-17 17:30:24 +01:00
alex 7d01e85cb8 whoops 2 2021-09-17 17:23:51 +01:00
alex df0f309259 whoops 2021-09-17 17:23:28 +01:00
alex a3e98976aa add break between dependencies list and start of instructions 2021-09-17 17:21:43 +01:00
alex f31288d5df mention linting in contributing section 2021-09-17 17:19:10 +01:00
alex 6880e0f9cc fix features list being on single line 2021-09-17 17:15:37 +01:00
alex 5f33326703 update readme and read from local.env 2021-09-17 17:10:06 +01:00
alex 0f7ff08c97 fix ci 2021-09-02 22:17:01 +01:00
alex 1063d6bb91 add github setup instructions 2021-08-28 03:03:57 +01:00
alex da19467c10 support darwin 2021-08-25 23:30:57 +01:00