feat: Update ingredient units and improve layout responsiveness across various components
This commit is contained in:
@@ -48,7 +48,7 @@ export abstract class RecipeParser {
|
|||||||
const knownUnits = [
|
const knownUnits = [
|
||||||
'g', 'kg', 'hg', 'mg', 'ml', 'dl', 'l', 'tl',
|
'g', 'kg', 'hg', 'mg', 'ml', 'dl', 'l', 'tl',
|
||||||
'st', 'tsk', 'msk', 'krm', 'matsked', 'tesked',
|
'st', 'tsk', 'msk', 'krm', 'matsked', 'tesked',
|
||||||
'pris', 'portion', 'burk', 'förp', 'paket',
|
'pris', 'portion', 'port', 'burk', 'förp', 'paket', 'efter smak', 'klyfta',
|
||||||
];
|
];
|
||||||
|
|
||||||
// Extrahera parentetisk info
|
// Extrahera parentetisk info
|
||||||
|
|||||||
@@ -582,7 +582,7 @@ function parseIngredientLine(text: string): ParsedIngredient {
|
|||||||
const knownUnits = [
|
const knownUnits = [
|
||||||
'g', 'kg', 'hg', 'mg', 'ml', 'dl', 'l', 'tl',
|
'g', 'kg', 'hg', 'mg', 'ml', 'dl', 'l', 'tl',
|
||||||
'st', 'tsk', 'msk', 'krm', 'matsled', 'tesled',
|
'st', 'tsk', 'msk', 'krm', 'matsled', 'tesled',
|
||||||
'pris', 'portion', 'burk', 'förp', 'paket',
|
'pris', 'portion', 'port', 'burk', 'förp', 'paket', 'efter smak', 'klyfta',
|
||||||
];
|
];
|
||||||
|
|
||||||
// Extrahera eventuell parentes-not i slutet
|
// Extrahera eventuell parentes-not i slutet
|
||||||
|
|||||||
@@ -229,7 +229,7 @@ export default function MergePreviewForm({ products }: Props) {
|
|||||||
style={{
|
style={{
|
||||||
display: 'grid',
|
display: 'grid',
|
||||||
gap: '1rem',
|
gap: '1rem',
|
||||||
gridTemplateColumns: '1fr 1fr',
|
gridTemplateColumns: 'repeat(auto-fit, minmax(300px, 1fr))',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<article style={{ border: '1px solid #ddd', borderRadius: '8px', padding: '1rem' }}>
|
<article style={{ border: '1px solid #ddd', borderRadius: '8px', padding: '1rem' }}>
|
||||||
|
|||||||
@@ -46,6 +46,10 @@ const UNIT_OPTIONS = [
|
|||||||
{ value: 'st', label: 'st (styck)' },
|
{ value: 'st', label: 'st (styck)' },
|
||||||
{ value: 'tsk', label: 'tsk (tesked)' },
|
{ value: 'tsk', label: 'tsk (tesked)' },
|
||||||
{ value: 'msk', label: 'msk (matsked)' },
|
{ value: 'msk', label: 'msk (matsked)' },
|
||||||
|
{ value: 'port', label: 'port (portioner)' },
|
||||||
|
{ value: 'efter smak', label: 'Efter smak' },
|
||||||
|
{ value: 'förp', label: 'förp (förpackning)' },
|
||||||
|
{ value: 'klyfta', label: 'klyfta' },
|
||||||
];
|
];
|
||||||
|
|
||||||
const LOCATION_OPTIONS = [
|
const LOCATION_OPTIONS = [
|
||||||
|
|||||||
@@ -24,6 +24,10 @@ export default function InventoryForm({ products }: Props) {
|
|||||||
{ value: 'st', label: 'st (styck)' },
|
{ value: 'st', label: 'st (styck)' },
|
||||||
{ value: 'tsk', label: 'tsk (tesked)' },
|
{ value: 'tsk', label: 'tsk (tesked)' },
|
||||||
{ value: 'msk', label: 'msk (matsked)' },
|
{ value: 'msk', label: 'msk (matsked)' },
|
||||||
|
{ value: 'port', label: 'port (portioner)' },
|
||||||
|
{ value: 'efter smak', label: 'Efter smak' },
|
||||||
|
{ value: 'förp', label: 'förp (förpackning)' },
|
||||||
|
{ value: 'klyfta', label: 'klyfta' },
|
||||||
];
|
];
|
||||||
|
|
||||||
const LOCATION_OPTIONS = [
|
const LOCATION_OPTIONS = [
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ export default async function InventoryPage({ searchParams }: InventoryPageProps
|
|||||||
style={{
|
style={{
|
||||||
display: 'grid',
|
display: 'grid',
|
||||||
gap: '1rem',
|
gap: '1rem',
|
||||||
gridTemplateColumns: '1fr 1fr',
|
gridTemplateColumns: 'repeat(auto-fit, minmax(280px, 1fr))',
|
||||||
alignItems: 'start',
|
alignItems: 'start',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -162,6 +162,10 @@ export default function EditRecipePage() {
|
|||||||
{ value: 'st', label: 'st (styck)' },
|
{ value: 'st', label: 'st (styck)' },
|
||||||
{ value: 'tsk', label: 'tsk (tesked)' },
|
{ value: 'tsk', label: 'tsk (tesked)' },
|
||||||
{ value: 'msk', label: 'msk (matsked)' },
|
{ value: 'msk', label: 'msk (matsked)' },
|
||||||
|
{ value: 'port', label: 'port (portioner)' },
|
||||||
|
{ value: 'efter smak', label: 'Efter smak' },
|
||||||
|
{ value: 'förp', label: 'förp (förpackning)' },
|
||||||
|
{ value: 'klyfta', label: 'klyfta' },
|
||||||
];
|
];
|
||||||
|
|
||||||
const LOCATION_OPTIONS = [
|
const LOCATION_OPTIONS = [
|
||||||
|
|||||||
@@ -127,6 +127,10 @@ export default function CreateRecipePage() {
|
|||||||
{ value: 'tsk', label: 'tsk (tesked)' },
|
{ value: 'tsk', label: 'tsk (tesked)' },
|
||||||
{ value: 'msk', label: 'msk (matsked)' },
|
{ value: 'msk', label: 'msk (matsked)' },
|
||||||
{ value: 'krm', label: 'krm (kryddmått)' },
|
{ value: 'krm', label: 'krm (kryddmått)' },
|
||||||
|
{ value: 'port', label: 'port (portioner)' },
|
||||||
|
{ value: 'efter smak', label: 'Efter smak' },
|
||||||
|
{ value: 'förp', label: 'förp (förpackning)' },
|
||||||
|
{ value: 'klyfta', label: 'klyfta' },
|
||||||
];
|
];
|
||||||
|
|
||||||
const LOCATION_OPTIONS = [
|
const LOCATION_OPTIONS = [
|
||||||
|
|||||||
@@ -156,7 +156,7 @@ export default function CreateRecipePage() {
|
|||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
display: 'grid',
|
display: 'grid',
|
||||||
gridTemplateColumns: '1fr 1fr',
|
gridTemplateColumns: 'repeat(auto-fit, minmax(350px, 1fr))',
|
||||||
gap: '1.5rem',
|
gap: '1.5rem',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ export default function ImportFilePage() {
|
|||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
display: 'grid',
|
display: 'grid',
|
||||||
gridTemplateColumns: '1fr 1fr',
|
gridTemplateColumns: 'repeat(auto-fit, minmax(350px, 1fr))',
|
||||||
gap: '1.5rem',
|
gap: '1.5rem',
|
||||||
marginBottom: '2rem',
|
marginBottom: '2rem',
|
||||||
}}
|
}}
|
||||||
|
|||||||
@@ -45,6 +45,10 @@ const UNIT_OPTIONS = [
|
|||||||
{ value: 'tsk', label: 'tsk (tesked)' },
|
{ value: 'tsk', label: 'tsk (tesked)' },
|
||||||
{ value: 'msk', label: 'msk (matsked)' },
|
{ value: 'msk', label: 'msk (matsked)' },
|
||||||
{ value: 'krm', label: 'krm (kryddmått)' },
|
{ value: 'krm', label: 'krm (kryddmått)' },
|
||||||
|
{ value: 'port', label: 'port (portioner)' },
|
||||||
|
{ value: 'efter smak', label: 'Efter smak' },
|
||||||
|
{ value: 'förp', label: 'förp (förpackning)' },
|
||||||
|
{ value: 'klyfta', label: 'klyfta' },
|
||||||
];
|
];
|
||||||
|
|
||||||
type Step = 'input' | 'review' | 'saving';
|
type Step = 'input' | 'review' | 'saving';
|
||||||
|
|||||||
@@ -44,6 +44,10 @@ const UNIT_OPTIONS = [
|
|||||||
{ value: 'tsk', label: 'tsk (tesked)' },
|
{ value: 'tsk', label: 'tsk (tesked)' },
|
||||||
{ value: 'msk', label: 'msk (matsked)' },
|
{ value: 'msk', label: 'msk (matsked)' },
|
||||||
{ value: 'krm', label: 'krm (kryddmått)' },
|
{ value: 'krm', label: 'krm (kryddmått)' },
|
||||||
|
{ value: 'port', label: 'port (portioner)' },
|
||||||
|
{ value: 'efter smak', label: 'Efter smak' },
|
||||||
|
{ value: 'förp', label: 'förp (förpackning)' },
|
||||||
|
{ value: 'klyfta', label: 'klyfta' },
|
||||||
];
|
];
|
||||||
|
|
||||||
type Step = 'input' | 'review' | 'saving';
|
type Step = 'input' | 'review' | 'saving';
|
||||||
@@ -311,7 +315,7 @@ Stek löken i lite smör. Tillsätt köttfärsen...`}</pre>
|
|||||||
|
|
||||||
{/* STEG 2: Granskning */}
|
{/* STEG 2: Granskning */}
|
||||||
{step === 'review' && parsed && (
|
{step === 'review' && parsed && (
|
||||||
<section style={{ display: 'grid', gridTemplateColumns: '2fr 1fr', gap: '1.5rem' }}>
|
<section style={{ display: 'grid', gridTemplateColumns: showDebugPanel ? '7fr 3fr' : '1fr', gap: '1.5rem' }}>
|
||||||
{/* Vänster: Receptdetaljer + Ingredienser */}
|
{/* Vänster: Receptdetaljer + Ingredienser */}
|
||||||
<div style={{ display: 'grid', gap: '1.5rem' }}>
|
<div style={{ display: 'grid', gap: '1.5rem' }}>
|
||||||
{/* Receptdetaljer */}
|
{/* Receptdetaljer */}
|
||||||
@@ -529,10 +533,13 @@ Stek löken i lite smör. Tillsätt köttfärsen...`}</pre>
|
|||||||
padding: '0.5rem',
|
padding: '0.5rem',
|
||||||
fontSize: '0.7rem',
|
fontSize: '0.7rem',
|
||||||
overflow: 'auto',
|
overflow: 'auto',
|
||||||
maxHeight: '200px',
|
maxHeight: '250px',
|
||||||
margin: '0.5rem 0 0',
|
margin: '0.5rem 0 0',
|
||||||
fontFamily: 'monospace',
|
fontFamily: 'monospace',
|
||||||
color: '#333',
|
color: '#333',
|
||||||
|
wordBreak: 'break-word',
|
||||||
|
whiteSpace: 'pre-wrap',
|
||||||
|
overflowWrap: 'break-word',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{markdown}
|
{markdown}
|
||||||
@@ -558,10 +565,13 @@ Stek löken i lite smör. Tillsätt köttfärsen...`}</pre>
|
|||||||
padding: '0.5rem',
|
padding: '0.5rem',
|
||||||
fontSize: '0.65rem',
|
fontSize: '0.65rem',
|
||||||
overflow: 'auto',
|
overflow: 'auto',
|
||||||
maxHeight: '200px',
|
maxHeight: '250px',
|
||||||
margin: '0.5rem 0 0',
|
margin: '0.5rem 0 0',
|
||||||
fontFamily: 'monospace',
|
fontFamily: 'monospace',
|
||||||
color: '#333',
|
color: '#333',
|
||||||
|
wordBreak: 'break-word',
|
||||||
|
whiteSpace: 'pre-wrap',
|
||||||
|
overflowWrap: 'break-word',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{JSON.stringify(parsed, null, 2)}
|
{JSON.stringify(parsed, null, 2)}
|
||||||
|
|||||||
Reference in New Issue
Block a user