Optionally use local instance of impress-2020 during development
To activate this, I created a `.env.development` file in my project root, with the following content: ```env IMPRESS_2020_ORIGIN=http://localhost:4000 ``` Then, I started impress-2020 with `yarn dev --port=4000`. Now, the app loads from there, hooray!! It even fixes that obnoxious pet state ID bug that happens when you run against the production db lol
This commit is contained in:
parent
4eb4013eb2
commit
6763e9454e
10 changed files with 31 additions and 6 deletions
|
@ -87,6 +87,11 @@ module ApplicationHelper
|
||||||
!@hide_home_link
|
!@hide_home_link
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def impress_2020_meta_tag
|
||||||
|
tag 'meta', name: "impress-2020-origin",
|
||||||
|
content: Rails.configuration.impress_2020_origin
|
||||||
|
end
|
||||||
|
|
||||||
JAVASCRIPT_LIBRARIES = {
|
JAVASCRIPT_LIBRARIES = {
|
||||||
:jquery => 'https://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js',
|
:jquery => 'https://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js',
|
||||||
:jquery20 => 'https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js',
|
:jquery20 => 'https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js',
|
||||||
|
|
|
@ -629,7 +629,7 @@ export function buildOutfitUrl(outfitState, options = {}) {
|
||||||
const origin =
|
const origin =
|
||||||
typeof window !== "undefined"
|
typeof window !== "undefined"
|
||||||
? window.location.origin
|
? window.location.origin
|
||||||
: "https://impress-2020.openneo.net";
|
: "https://impress.openneo.net";
|
||||||
|
|
||||||
return origin + buildOutfitPath(outfitState, options);
|
return origin + buildOutfitPath(outfitState, options);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,8 @@ import { ApolloClient, createHttpLink, InMemoryCache } from "@apollo/client";
|
||||||
import { loadErrorMessages, loadDevMessages } from "@apollo/client/dev";
|
import { loadErrorMessages, loadDevMessages } from "@apollo/client/dev";
|
||||||
import { createPersistedQueryLink } from "apollo-link-persisted-queries";
|
import { createPersistedQueryLink } from "apollo-link-persisted-queries";
|
||||||
|
|
||||||
|
import { buildImpress2020Url } from "./impress-2020-config";
|
||||||
|
|
||||||
// Use Apollo's error messages in development.
|
// Use Apollo's error messages in development.
|
||||||
if (process.env["NODE_ENV"] === "development") {
|
if (process.env["NODE_ENV"] === "development") {
|
||||||
loadErrorMessages();
|
loadErrorMessages();
|
||||||
|
@ -159,7 +161,7 @@ const typePolicies = {
|
||||||
const cache = new InMemoryCache({ typePolicies });
|
const cache = new InMemoryCache({ typePolicies });
|
||||||
|
|
||||||
const httpLink = createHttpLink({
|
const httpLink = createHttpLink({
|
||||||
uri: "https://impress-2020.openneo.net/api/graphql",
|
uri: buildImpress2020Url("/api/graphql"),
|
||||||
});
|
});
|
||||||
|
|
||||||
const link = createPersistedQueryLink({
|
const link = createPersistedQueryLink({
|
||||||
|
|
|
@ -3,6 +3,7 @@ import gql from "graphql-tag";
|
||||||
import { useQuery } from "@apollo/client";
|
import { useQuery } from "@apollo/client";
|
||||||
import { Box, Flex, Select, Text, useColorModeValue } from "@chakra-ui/react";
|
import { Box, Flex, Select, Text, useColorModeValue } from "@chakra-ui/react";
|
||||||
|
|
||||||
|
import { buildImpress2020Url } from "../impress-2020-config";
|
||||||
import { Delay, logAndCapture, useFetch } from "../util";
|
import { Delay, logAndCapture, useFetch } from "../util";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -346,7 +347,7 @@ let cachedResponseForAllValidPetPoses = null;
|
||||||
*/
|
*/
|
||||||
export function useAllValidPetPoses() {
|
export function useAllValidPetPoses() {
|
||||||
const networkResponse = useFetch(
|
const networkResponse = useFetch(
|
||||||
"https://impress-2020.openneo.net/api/validPetPoses",
|
buildImpress2020Url("/api/validPetPoses"),
|
||||||
{
|
{
|
||||||
responseType: "arrayBuffer",
|
responseType: "arrayBuffer",
|
||||||
// If we already have globally-cached valids, skip the request.
|
// If we already have globally-cached valids, skip the request.
|
||||||
|
|
10
app/javascript/wardrobe-2020/impress-2020-config.js
Normal file
10
app/javascript/wardrobe-2020/impress-2020-config.js
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
const IMPRESS_2020_ORIGIN = readImpress2020Origin();
|
||||||
|
|
||||||
|
export function buildImpress2020Url(path) {
|
||||||
|
return new URL(path, IMPRESS_2020_ORIGIN).toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
function readImpress2020Origin() {
|
||||||
|
const node = document.querySelector("meta[name=impress-2020-origin]");
|
||||||
|
return node?.content || "https://impress-2020.openneo.net"
|
||||||
|
}
|
|
@ -11,6 +11,8 @@ import loadableLibrary from "@loadable/component";
|
||||||
import * as Sentry from "@sentry/react";
|
import * as Sentry from "@sentry/react";
|
||||||
import { WarningIcon } from "@chakra-ui/icons";
|
import { WarningIcon } from "@chakra-ui/icons";
|
||||||
|
|
||||||
|
import { buildImpress2020Url } from "./impress-2020-config";
|
||||||
|
|
||||||
import ErrorGrundoImg from "./images/error-grundo.png";
|
import ErrorGrundoImg from "./images/error-grundo.png";
|
||||||
import ErrorGrundoImg2x from "./images/error-grundo@2x.png";
|
import ErrorGrundoImg2x from "./images/error-grundo@2x.png";
|
||||||
|
|
||||||
|
@ -141,7 +143,7 @@ export function safeImageUrl(
|
||||||
`safeImageUrl could not parse URL: ${urlString}. Returning a placeholder.`,
|
`safeImageUrl could not parse URL: ${urlString}. Returning a placeholder.`,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
return "https://impress-2020.openneo.net/__error__URL-was-not-parseable__";
|
return buildImpress2020Url("/__error__URL-was-not-parseable__");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Rewrite Neopets URLs to their HTTPS equivalents, and additionally to our
|
// Rewrite Neopets URLs to their HTTPS equivalents, and additionally to our
|
||||||
|
@ -178,7 +180,7 @@ export function safeImageUrl(
|
||||||
`upgrade it to HTTPS: ${urlString}. Returning a placeholder.`,
|
`upgrade it to HTTPS: ${urlString}. Returning a placeholder.`,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
return "https://impress-2020.openneo.net/__error__URL-was-not-HTTPS__";
|
return buildImpress2020Url("/__error__URL-was-not-HTTPS__");
|
||||||
}
|
}
|
||||||
|
|
||||||
return url.toString();
|
return url.toString();
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
= yield :meta
|
= yield :meta
|
||||||
= open_graph_tags
|
= open_graph_tags
|
||||||
= csrf_meta_tag
|
= csrf_meta_tag
|
||||||
|
= impress_2020_meta_tag
|
||||||
= signed_in_meta_tag
|
= signed_in_meta_tag
|
||||||
- if user_signed_in?
|
- if user_signed_in?
|
||||||
= current_user_id_meta_tag
|
= current_user_id_meta_tag
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
= render 'static/analytics'
|
= render 'static/analytics'
|
||||||
= open_graph_tags
|
= open_graph_tags
|
||||||
= csrf_meta_tags
|
= csrf_meta_tags
|
||||||
|
= impress_2020_meta_tag
|
||||||
%meta{name: 'dti-current-user-id', content: user_signed_in? ? current_user.id : "null"}
|
%meta{name: 'dti-current-user-id', content: user_signed_in? ? current_user.id : "null"}
|
||||||
%body
|
%body
|
||||||
#wardrobe-2020-root
|
#wardrobe-2020-root
|
||||||
|
|
2
config/initializers/impress_2020.rb
Normal file
2
config/initializers/impress_2020.rb
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Rails.configuration.impress_2020_origin =
|
||||||
|
ENV["IMPRESS_2020_ORIGIN"] || "https://impress-2020.openneo.net"
|
|
@ -87,7 +87,8 @@ OpenneoImpressItems::Application.routes.draw do
|
||||||
get '/donate' => 'campaigns#current', as: :donate
|
get '/donate' => 'campaigns#current', as: :donate
|
||||||
|
|
||||||
# Static pages!
|
# Static pages!
|
||||||
get '/terms' => redirect("https://impress-2020.openneo.net/terms"), :as => :terms
|
get '/terms', as: :terms,
|
||||||
|
to: redirect(Rails.configuration.impress_2020_origin + "/terms")
|
||||||
|
|
||||||
# Other useful lil things!
|
# Other useful lil things!
|
||||||
get '/sitemap.xml' => 'sitemap#index', :as => :sitemap, :format => :xml
|
get '/sitemap.xml' => 'sitemap#index', :as => :sitemap, :format => :xml
|
||||||
|
|
Loading…
Reference in a new issue